之後在 Exchange 2000 Server 中註冊低優先權事件接收器,間歇地當機 SMTP 虛擬伺服器

重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。

按一下這裡查看此文章的英文版本:836549
本文已封存。本文係以「現狀」提供且不會再更新。
徵狀
當您註冊一個事件接收器,實作 ISmtpInCommandSink 介面以及所處理伺服器回應,以及遵循訊息內容時,SMTP 虛擬伺服器可能會間歇地時當掉 Microsoft Exchange 2000 伺服器是在負載過重之下。

在這種情況下您事件接收器已設定來處理下列伺服器回應和訊息的內容:
  • 伺服器回應:
    ISmtpInCommandContext::QueryResponse
    ISmtpInCommandContext::QueryNativeResponse
  • 訊息內容:
    IMailMsgProperties::ReadContent
    IMailMsgProperties::WriteContent
當您疑難排解這個問題時,當您使用 IMailMsgProperties 介面時,便會發生存取違規。在這種情況下此存取違規通常當您使用時發生 WriteContent 方法。
發生的原因
如果是預設優先順序比低優先順序的資料 (_EOD) SMTP 命令的結尾註冊事件接收器,可能就會發生這個問題。比方說如果註冊事件接收器在 30,000 的優先順序,可能就會發生這個問題。 如果您註冊事件接收器在比預設優先順序高的優先順序,這不會發生問題。
其他可行方案
如果要解決這個問題,引發事件接收器,使其高於 EOD 處理常式的優先順序層級的優先順序。EOD 處理常式是最後一步是郵件傳輸流量。EOD 處理常式事件後在訊息佇列等待傳遞和 SMTP 系統中已不存在。如果您指派一個優先順序低於 EOD 處理常式的事件接收器,該事件接收器完成其作業之前,可能會移除訊息。在這種情況下傳遞或處理事件接收器完成其作業之前郵件事件接收器將要存取為 刪除 mailmsg 物件。 若要確定事件接收器引發訊息送出至佇列前,您必須指定事件接收器比預設的優先順序較高的優先順序。

警告:本文為自動翻譯

內容

文章識別碼:836549 - 最後檢閱時間:10/26/2013 20:49:11 - 修訂: 1.1

Microsoft Exchange 2000 Server Standard Edition

  • kbnosurvey kbarchive kbmt kbprb KB836549 KbMtzh
意見反應