Windows-Server-2008

IIS/SMTP - 由於文件鎖定,無法從 inetpub/mailroot/Queue 移動電子郵件

  • February 17, 2013

我有一個處理inetpub/mailroot/Queue目錄中電子郵件的偵聽器。一旦聽眾處理完一封電子郵件,它就會繼續將電子郵件移動到另一個目錄。但是,由於程序鎖定了文件,因此無法移動電子郵件inetinfo.exe。我注意到這個文件鎖在幾個小時到幾天的時間後被釋放。您可以看到該Queue目錄會隨著時間的推移變得非常滿。

我能夠解決這個問題的唯一方法是在 IIS 中手動停止和啟動我的 SMTP 虛擬伺服器。

是否可以通過程式方式釋放此文件鎖?如果沒有,是否可以加快釋放此文件鎖?

更新

偵聽器監視Queue傳入電子郵件的文件夾,然後處理它們。然後將來自電子郵件的數據插入我們的內部程序。在偵聽器完成電子郵件後,它會將電子郵件移動到其他地方的成功或失敗目錄。

解決了

差不多一年後回到這個問題後,我終於能夠解決它!解決方案是配置 SMTP 虛擬伺服器的本地(預設)域並將其設置為我要處理的電子郵件的適當域。這導致電子郵件進入Drop可以自由操作的文件夾,而不必擔心程序鎖定。

“Queue”目錄供 SMTP 伺服器程序內部使用。您發現文件被鎖定在那裡,因為您不應該在那裡使用它們。如果您的“隊列”目錄已滿,那麼您最好找出電子郵件傳遞失敗的原因。我不清楚微軟的舊SMTPDiag 工具是否可以在 Windows Server 2008 上執行,但它是一個開始的地方。

更新:

我不清楚你到底想對你的處理任務做什麼。“隊列”文件夾用於保存等待傳遞的消息。已接受本地傳遞的郵件儲存在“Drop”文件夾中。假設您正在尋找正在接受本地傳遞的消息,我會擔心為什麼它們會在“隊列”中閒逛而不是在“丟棄”中結束。除非某些東西不能正常工作,否則不應在“隊列”中建立文件。

(順便說一句:查找文件 re:Windows Server 2008 中的 SMTP 服務變得相當困難。SMTP 服務一直是一個孤兒,生活在 Windows 作業系統和 Exchange 之間的陰暗世界。>sigh< )

引用自:https://serverfault.com/questions/394039