訊息佇列無法在 IP 位址變更之後到目標佇列中傳送的郵件

文章翻譯 文章翻譯
文章編號: 833512 - 檢視此文章適用的產品。
重要本文包含有關如何修改登錄的資訊。請確定您在修改之前備份登錄。如果發生問題,請確定您知道如何還原登錄。如何備份、 還原,及修改登錄的相關資訊,請按一下下列的文件編號,檢視 Microsoft 知識庫中的文件:
322756如何備份和還原在 Windows 登錄
全部展開 | 全部摺疊

在此頁中

徵狀

Microsoft 訊息佇列 」 (也稱為 MSMQ) 無法成功地將訊息傳送到目標佇列兩種下列情況皆成立時:
  • 接收端電腦的 IP 位址已經變更。
  • 不同的電腦已假設先前已由接收端電腦擁有 [IP 位址。

發生的原因

寄件者不會重試名稱解析,就會發生這個問題。

解決方案

Microsoft Windows 2000

安全性更新資訊

如果要解決這個問題,套用安全性更新程式所討論下列 「 Microsoft 知識庫 」 文件中:
892944MS05-017: MSMQ 的弱點可能會允許執行程式碼
登錄資訊
套用此安全性更新之後,必須對登錄進行變更。如需詳細資訊請參閱 < > 一節。

Microsoft Windows XP

服務套件資訊

如果要解決這個問題,取得最新的 Service Pack 的 Windows XP。如需詳細資訊,請按一下下列的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
322389如何取得最新的 Windows XP Service Pack
登錄資訊
套用這個 Service Pack 之後,必須對登錄進行變更。如需詳細資訊請參閱 < > 一節。

Hotfix 資訊

Microsoft 提供支援的 Hotfix。不過,此 Hotfix 旨在修正本文中所述隨問題。只會發生此特定問題的系統套用此 Hotfix。這個 Hotfix 可能會接受額外的測試。因此,如果您不會嚴重影響這個問題,我們建議您等候下一個包含此 Hotfix 的軟體更新。

如果此 Hotfix 可供下載,您可在本知識庫文件的頂端找到「 可用的 Hotfix 下載 」區段。如果本節 Does Not Appear 請連絡[ Microsoft 客戶服務 ] 和 [ 支援 ] 以取得此 Hotfix。

附註如果發生其他問題,或如果需要任何疑難排解,您可能必須建立個別的服務要求。和此 Hotfix 無關的額外支援問題適用一般的支援費用。如需 Microsoft 客戶服務支援部門電話號碼的完整清單或要建立個別的服務要求,請造訪下列 Microsoft 網站:
http://support.microsoft.com/contactus/?ws=support
附註「 下載 Hotfix 」 表單會顯示此 Hotfix 會出現,以供使用的語言。如果您沒有看到您的語言,是因為此 Hotfix 是不適用您的語言。
必要條件
沒有先決條件都是必要的。
重新啟動需求
套用此 Hotfix 之後,您必須重新啟動電腦。
登錄資訊
套用此 Hotfix 之後,必須對登錄進行變更。如需詳細資訊請參閱 < > 一節。
檔案資訊
此 Hotfix 的英文版在檔案屬性 (或更新版本的檔案屬性) 如下列表格中所列。這些檔案的日期和時間為 Coordinated Universal Time (UTC)。當您檢視檔案資訊時,會將它轉換為當地時間。若要到 UTC 與當地時間差異使用在 [日期及時間 中項目控制台中的 [時區] 索引標籤]。
   Date         Time   Version     Size     File name
   -------------------------------------------------------------------------------
   15-Dec-2003  17:31  5.1.0.1041   67,456  Mqac.sys
   15-Dec-2003  20:37  5.1.0.1041  130,048  Mqad.dll
   15-Dec-2003  20:37  5.1.0.1041   14,848  Mqise.dll
   15-Dec-2003  20:37  5.1.0.1041  608,256  Mqqm.dll
   15-Dec-2003  20:37  5.1.0.1041  165,888  Mqrt.dll
   15-Dec-2003  20:37  5.1.0.1041   88,576  Mqsec.dll
   15-Dec-2003  17:31  5.1.0.1041   98,816  Mqtgsvc.exe
   15-Dec-2003  20:37  5.1.0.1041  467,456  Mqutil.dll
   15-Dec-2003  19:01  5.4.1.0     429,336  Windowsxp-kb833512-x86-enu-symbols.exe
   15-Dec-2003  19:01  5.4.1.0     799,000  Windowsxp-kb833512-x86-enu.exe

狀況說明

Microsoft 已確認<適用於>一節所列之 Microsoft 產品確實有此問題。

這個問題已經在 Windows XP Service Pack 2 中獲得修正。

這個問題已經在 Windows Server 2003 Service Pack 1 中獲得修正。

其他相關資訊

在這種情況下沒有一個寄件者和兩個接收者 (接收者 A 和接收者 B)。 接收者 A 使用虛擬私人網路 (VPN) 連線來連接到網路。 寄件者成功地傳送訊息。 接收者 A 從網路上中斷連線。 接收者 B 連接到網路,並會取得 IP 位址先前已使用的接收者 A。 接收者 A 也可能會重新連線,並取得新的 IP 位址。寄件者繼續為接收者 A 傳送訊息的目的是為現在正由接收者 B.的 IP 位址 寄件者不會重試名稱解析因為先前的結果已快取。 接收者 B 會拒絕該郵件,但寄件者會繼續傳送訊息給接收者 B。 您必須重新啟動以解決此問題的寄件者的電腦上的 [訊息佇列] 服務。

登錄變更

警告如果您修改登錄不當使用 「 登錄編輯程式 」,或使用另一個方法,可能會發生嚴重的問題。這些問題可能需要重新安裝作業系統。Microsoft 無法保證可以解決這些問題。您必須自己承擔修改登錄所造成的風險。

除了套用適當的更新,您必須在寄件者和接收者上設定的登錄參數。下列的登錄變更需要在接收者端,這樣接收者會釋放工作階段,如果收到非本機佇列的訊息時,它。這項變更表示接收者會不傳回工作階段認可及寄件者將會關閉工作階段一小段時間稍後。 它是在關閉一個工作階段,如果在指定的逾時時間內未收到的通知寄件者端的標準。寄件者再嘗試重新建立工作階段。請遵循這些步驟,然後結束 「 登錄編輯程式 」:
  1. 按一下 [開始]、 按一下 [執行]、 輸入 regedit,然後按一下 [確定]]。
  2. 找出並按一下登錄中的下列機碼:
    HKEY_LOCAL_MACHINE\Software\Microsoft\MSMQ\Parameters
  3. 在 [編輯] 功能表上指向 [新增],然後按一下 [REG_DWORD]。
  4. 鍵入 CloseSessionOnNonLocal,並按下 ENTER。
  5. 編輯] 功能表上按一下 [修改]。
  6. 輸入 1,然後按一下 [確定]
您必須進行下列變更強制寄件者忽略其位址快取,並永遠執行名稱解析,建立一個工作階段前的登錄。請遵循這些步驟,然後結束 「 登錄編輯程式 」:
  1. 按一下 [開始]、 按一下 [執行]、 輸入 regedit,然後按一下 [確定]]。
  2. 找出並按一下登錄中的下列機碼:
    HKEY_LOCAL_MACHINE\Software\Microsoft\MSMQ\Parameters
  3. 在 [編輯] 功能表上指向 [新增],然後按一下 [REG_DWORD]。
  4. 鍵入 ForceNameResolutionDirect,並按下 ENTER。
  5. 編輯] 功能表上按一下 [修改]。
  6. 輸入 1,然後按一下 [確定]
此修正程式還會將名稱解析程式碼的記錄。新增下列登錄值來啟用這項變更。請遵循這些步驟,然後結束 「 登錄編輯程式 」:
  1. 按一下 [開始]、 按一下 [執行]、 輸入 regedit,然後按一下 [確定]]。
  2. 找出並按一下登錄中的下列機碼:
    HKEY_LOCAL_MACHINE\Software\Microsoft\MSMQ\Parameters\Debug
  3. 在 [編輯] 功能表上指向 [新增],然後按一下 [REG_DWORD]。
  4. 鍵入 QMLogging,並按下 ENTER。
  5. 編輯] 功能表上按一下 [修改]。
  6. 輸入 0x20,然後按一下 [確定]
附註QMLogging 值是 Windows 2000 特有的。CloseSessionOnNonLocal 和 ForceNameResolutionDirect] 值是為 Windows 2000 及 Windows Server 2003。

下列的登錄參數也是需要清除 DNS 的 NetBIOS 名稱解析會快取。否則,快取中的 IP 可能被屬於不同的電腦:
  • HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Netbt\Parameters\CacheTimeout = (DWORD) 0
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters\MaxCacheEntryTtlLimit = (DWORD) 1
附註MaxCacheEntryTtlLimit 登錄機碼是 Windows 2000 特有的。在 Windows Server 2003 中將此登錄機碼就會呼叫 MaxCacheTtl。如需有關 MaxCacheTtl 登錄機碼,按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
318803如何停用用戶端 DNS 快取在 Windows XP 和 Windows Server 2003 中
如需有關軟體更新術語的詳細資訊,按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
824684用來描述 Microsoft 軟體更新標準術語的說明

屬性

文章編號: 833512 - 上次校閱: 2008年4月15日 - 版次: 10.1
這篇文章中的資訊適用於:
  • Microsoft Message Queuing 3.0
  • Microsoft Message Queuing 2.0
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows XP Professional
關鍵字:?
kbmt kbautohotfix kbhotfixserver kbtshoot kbwinxpsp2fix kbwin2000presp5fix kbbug kbfix kbwinxppresp2fix kbqfe KB833512 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:833512
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com