저는 C# Outlook 통합을 통해 사용자 Outlook에서 상위 50 개의 전자 메일 (다른 전자 메일은 전자 메일로 보내지 않음)을 읽는 작은 wpf 응용 프로그램을 작성하고 있습니다.WPF Outlook 통합으로 인해 작업이 실패했습니다.
내 응용 프로그램 UI가 반응하도록하려면 MAPI 연결을 설정하고 백그라운드 작업자에게서받은 편지함 폴더를 읽는 중입니다.
모든 것이 제대로 작동하지만 일부 사용자의 경우 무작위로 예외가 발생합니다.
The operation failed.
at Microsoft.Office.Interop.Outlook._MailItem.get_SenderName()
at WPFapplication.WPFOutlookView.OutlookMailItem..ctor(MailItem item)
at WPFapplication.WPFOutlookView._getEmailsBackgroundWorker_DoWork
(Object sender, DoWorkEventArgs e)
이 예외는 매우 무작위로 발생하며 개발 컴퓨터에서 재현 할 수 없습니다.
WPF 앱에서 Outlook 연결을 설정하기 위해 백그라운드 작업자를 사용할 수 있습니까? (Outlook OOM 호출을 모든 Outlook에서 제안하는 일부 온라인 게시물은 Outlook 기본 스레드에서 발생해야합니다.)
그렇다면 일부 사용자 컴퓨터가 없을 때 내 응용 프로그램을 응답 가능하게 만들려면 어떻게해야합니까? 모든 Outlook 프로필 설정 또는 사용자가 암호를 입력하기를 기다리고 있습니까?
는
업데이트 : 무인 이메일을 가져 오지려고하고 있지 않다 , 그냥 내가 필요 내 응용 프로그램은 UI를로드해야하며 사용자가 credetials를 입력 할 때 이메일을 가져 오지 기다릴 수있는 사용자 입력에 관계없이입니다. UI 스레드에서 OOM을 호출하면 사용자가 자격 증명을 입력 할 때까지 응용 프로그램의 전체 UI가 렌더링되지 않습니다. 이것이 백그라운드 작업자에서 OOM을 호출하는 주된 이유입니다. 내 응용 프로그램은 간단합니다 1. wpf보기와 사용자가 새 전자 메일을받을 때마다 상위 20 개의 전자 메일 및 업데이트를 표시하는 목록 상자. 내 구현은 WPF 뷰에 OOM을 호출하고 전자 메일을 받고 목록을 업데이트하는 백그라운드 작업자가 있으며이 목록은 목록 상자에 바인딩되어 있습니다. 여기에 어떤 변화가 있었습니까? 귀하의 질문에 대한 더 나은보기를 얻을 우리에게 정확한 예외를 얻기 위하여
내가 EXEption 메시지를 자른 것 같아요. –
@ user680370 : 답을 편집하려고하지 마십시오. 그 이유는 다음과 같습니다. – Wrikken