簡體   English   中英

單擊“發送”按鈕時,Outlook 2003郵件窗口凍結

[英]Outlook 2003 mail window freezes on click of Send button

我用VSTO + VS 2008開發了一個Outlook 2003插件。

有一個VB 6應用程序可創建Outlook郵件實例,將其附加到文檔中,並顯示給用戶發送。

當用戶單擊“發送”按鈕時,郵件窗口將凍結。 它僅在生產機器上發生。

VB6代碼如下:

Private Sub Command1_Click()

Dim objOlApp As New Outlook.Application
Dim objMailItem As Outlook.MailItem
Dim objAttachments As Attachments
Dim arrFilesToAttach(1) As String

    Set objOlApp = New Outlook.Application
    Set objMailItem = objOlApp.CreateItem(olMailItem)
    Set objAttachments = objMailItem.Attachments

    arrFilesToAttach(0) = Text1.Text

    For l = 0 To 0
        strTemp = arrFilesToAttach(l)
        If strTemp <> "" Then
            objAttachments.Add arrFilesToAttach(l)
        End If
    Next

    objMailItem.Display True

    Set objOlApp = Nothing
    Set objMailItem = Nothing
    Set objAttachments = Nothing
End Sub

看看是否是我的插件正在創建一個問題。 我創建了一個簡單的Outlook加載項,並向try ... catch塊內的啟動事件添加了一些文件IO代碼。 我禁用了以前的插件,並安裝了這個新的示例插件。

結果令人驚訝,樣本加載項也產生了問題。 它將示例加載項的注冊表中的LoadBehaviour更改為2。 try ... catch塊未捕獲異常。 我已經為Appdomain的unhandledException添加了一個處理程序,但是也不會被觸發。

請幫助...預先感謝。

如果Outlook將您的插件的負載行為更改為2,則通常意味着在加載過程中有關該插件的某些操作出現故障,而Outlook則將其禁用。

加載項可能在加載時發生故障的所有種種原因(缺少引用的dll,權限等),所以這是一個問題。

要確定您的插件是否掛斷了發送過程,只需禁用您的插件即可(例如,將loadbehavior設置為0)。 並非真的需要為此創建示例插件。

如果禁用外接程序后一切正常,但啟用外接程序后失敗,則很可能是外接程序出現問題。

那時,我要做的是開始“釋放”代碼塊。

我的意思是我開始注釋掉入口點(或注釋掉所有入口點,並且一次只注釋掉一個注釋)。

例如,如果您在Startup事件中發生了一些事情,請對其進行注釋,重新編譯和測試。 如果沒有失敗,請刪除注釋,然后注釋鏈中其他較高級別的內容。

我也傾向於使用很多日志記錄(通常使用Log4Net,但是您可以使用任何東西)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM