2014-02-07 5 views
0

나는 Outlook에 연결하는 C# forms 응용 프로그램 마녀가 있습니다.안정성 C# Microsoft.Office.Interop.Outlook을 사용하여 Outlook에 연결된 양식

프로그램에서받는 메일을 처리하므로 낮 시간 동안 안정적으로 실행해야합니다. 문제는 명백한 이유없이 프로그램이보기 시간 후에 응답하지 않게되는 것입니다.

예외를 기록하려고하는데 프로덕션 환경에서 응답하지 않게됩니다. 이 문제를 해결하는 방법에 대해 알고 싶습니다.

이 프로그램은 몇 가지 클래스 변수가 있습니다

Outlook.Application olApp; 
Outlook.NameSpace olSession; 
Outlook.MAPIFolder olInbox; 
Outlook.Items olInboxItems 

나는 연결 전망 : 처리 메일에 대한

private void InitOutlook() 
{ 

    if (olApp == null) 
     olApp = new Outlook.Application(); 

    olSession = olApp.GetNamespace("MAPI"); 
    olInbox = olSession.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox); 

    olInboxItems = olPlanonIn.Items; 
    olInboxItems.ItemAdd += new Outlook.ItemsEvents_ItemAddEventHandler(InboxItemAdded); 

} 

이벤트 핸들러

private void InboxInItemAdded(object itm) 
{ 
// process my mail 
} 

답변

1

나는 상호 운용성 - 파워 포인트 시나리오에서 유사한 문제가 있었다 . 나는 정확한 이유를 찾지 못했지만 가능성이있는 supsect는 열린 COM 개체의 수입니다. 당신은 모든 객체를 적절하게 공개하고 있습니까? How do I properly clean up Excel interop objects?

당신이 당신의 과정을 다시 시작 감시자 스레드를 구현할 수있는 최후의 수단으로 :

은 자세한 내용은이 스레드에서보세요. 좋지는 않지만 문제를 "해결할"수 있습니다.

+0

Thanhks, 내 코드를 확인한 결과 olInboxItems 대신 olInboxItems를 사용하고 있었고 방금 도구를 업데이트했습니다. – Arnoldiusss

+0

다행스럽게도 도움이 될 수있어서 기뻤습니다. –

관련 문제