匯出 (0) 列印
全部展開

服務匯流排疑難排解

更新日期: 2014年6月

下列各節說明可能會在撰寫 Microsoft Azure 服務匯流排 之應用程式時發生的問題,以及問題的解決方式。

下列各節說明如何疑難排解 服務匯流排 應用程式。

症狀

服務匯流排 應用程式可在部署架構中執行且不會發生錯誤,但在部署到 伺服器之後即會當機。

原因

服務匯流排 組件目前尚未整合至 平台。因此,應用程式會嘗試存取不存在於伺服器上的組件。

解決方式

將 服務匯流排 組件新增至部署套件中 (例如,將組件設定為 [本機複本])。請注意,您因此需要手動更新組件。

症狀

當端點是以程式設計方式設定時,應用程式可以執行,但是,若將這些相同的組態設定儲存於相關聯的 App.config 檔案中,即會失敗。應用程式會產生下列錯誤:

System.Configuration.ConfigurationErrorsException:找不到設定繫結延伸「system.serviceModel/bindings/netTcpRelayBinding」。請確認已在 system.serviceModel/extensions/bindingExtensions 中正確登錄此繫結延伸,而且它的拼法正確。

原因

服務匯流排 組件目前尚未整合至 平台。如果您已在本機電腦上安裝 SDK,將會修改 Machine.config 檔案以新增數個 Windows Communication Foundation (WCF) 延伸,例如 NetTcpRelayBinding。接著,應用程式可以在 Machine.config 檔案中尋找相關資訊,例如,在 netTcpRelayBinding 區段中。這無法在 平台上進行,因此,應用程式找不到相關資訊。

解決方式

若要讓設定可以在 上作用,請將延伸從本機 Machine.config 檔案複製到 App.config 檔案中。否則,將無法辨識 netTcpRelayBinding 之類的標記。但是,如果您這樣做,應用程式將會因為延伸重複而無法在本機執行。因此,您必須保留兩個 App.config 檔案版本;一個在本機使用,另一個則供 使用。建議您以程式設計方式執行這個特殊工作。

下列疑難排解主題包含如何連線至 服務匯流排 的相關資訊。如果您在本節後續內容中找不到解決方案,可以考慮下列其中一個可行方案:

  • 執行網路追蹤 - 網路可能已中斷。使用網路監視器來判斷網路的狀態,或許有助於偵錯問題。

症狀

當您嘗試利用用戶端應用程式連線至 服務匯流排 時,收到下列錯誤:

未處理的例外狀況:System.ServiceModel.EndpointNotFoundException:找不到端點。請確定您可以使用 HTTP 連接埠 80 和 TCP 連接埠 808 連線至網際網路。

原因

可能導致此錯誤的原因很多。

解決方式

  • 檢查看看主機是否有在執行。如果沒有,則不會有任何要連線的端點。您可以使用此處所列的兩種程序之一來執行服務:

    1. 偵錯模式 - 在 Visual Studio 的 [方案總管] 中的服務專案上按一下滑鼠右鍵,並按一下 [偵錯]。然後按一下 [開始新執行個體]。服務啟動之後,針對用戶端重複執行此程序。請注意,即使服務已經在執行,您還是可以對用戶端進行偵錯。

    2. 在偵測模式之外 - 將服務專案設定為啟動專案。從 [偵錯] 功能表,按一下 [啟動但不偵錯]。這麼做的好處是,即使服務應用程式將會執行,但 Visual Studio 並不會受到影響。服務啟動之後,將用戶端專案設定為啟動專案,然後加以執行。

  • 確定您已將 Microsoft.ServiceBus.dll 組件 (位於 Visual Studio 中) 的 [複製本機] 屬性設定為 [True]。雲端伺服器並未安裝 SDK。因此,您必須將組件納入套件中。沒有該組件,背景工作角色將無法正確運作。

  • 確認您實際上可以使用 HTTP 連接埠 80 和 TCP 連接埠 808 連線至網際網路。

症狀

應用程式無法連線至 服務匯流排,並且會傳回下列錯誤訊息:

「用戶端無法在設定的逾時 (00:01:00) 內完成安全性交涉。目前的交涉 Leg 為 1 (00:00:59.9429968)。」

原因

驗證認證可能未正確設定。

解決方式

檢查看看您是否在驗證用戶端。請特別檢查看看您是否已將 RelayClientAuthenticationType 設定為 None。此值預設為 RelayAccessToken,這會要求您提供驗證宣告,例如共用密碼。但是,如果您手動將值設定為 None,用戶端應該不會提供任何驗證。

如果您未設定驗證類型,則所擁有的 RelayClientAuthenticationType 很可能會具備預設的 RelayAccessToken 值。如果情況是這樣的話,請檢查看看是否已正確指定驗證宣告。如需詳細資訊,請參閱 保護與驗證服務匯流排連線.

症狀

當您嘗試連線至 服務匯流排 時,收到下列錯誤:

「確認訊息安全性時發生錯誤」

原因

發生此錯誤的一個可能原因是,本機電腦的 UTC 時間比 服務匯流排 伺服器上的 UTC 時間還快。例如,本機 UTC 時間戳記可能是 8:06,而伺服器上的時間戳記為 8:05。伺服器會認為這是無效的時間戳記,並產生<症狀>一節中提及的錯誤訊息。

解決方式

確認本機電腦的 UTC 時間正確無誤。如有需要,請手動將時鐘往回設定數分鐘。服務匯流排 不會將舊一點的訊息視為違反安全性;只會將看似來自未來的訊息視為違反安全性。

症狀

即使您知道服務已順利執行,但仍無法在 ATOM 摘要中找到該服務。

原因

服務登錄的預設行為是不會透過 ATOM 摘要公開服務。

解決方式

將端點設定為可探索的,如作法:將服務發行至服務匯流排登錄所述。

顯示:
© 2014 Microsoft