我們正在嘗試將我們的 esb 遷移到 azure 服務總線。我們有訊息發布到服務總線,并且有附加到訂閱者以處理訊息的 wcf 服務。在我們遷移總線之后,我們正在從 wcf 遷移到 azure 函式,但是目前,我們有代碼可以利用訂閱者(在 global.asax 中的應用程式啟動時),獲取訊息并將其轉發到 wcf 端點實作. 我們的一條訊息僅在我們的生產環境中進入死信佇列,所有其他環境似乎都適用于同一條訊息。當我檢查 DeatLetterReson 和描述時,它只是說已超過最大交付計數。我們在 OnMessage 之后的第一行添加了日志記錄,試圖查看是否存在導致此問題的應用程式錯誤,但未記錄。我從 prod 獲取有效負載并將其發送到我們的開發環境(認為可能存在奇怪的資料配置問題)并收到訊息。此外,其他訊息可以在 prod 上使用,我可以點擊 wcf 端點,如果有連接問題,我通常會在嘗試點擊端點時看到它(當訂閱者連接到服務總線時)。
有什么辦法可以進一步除錯,看看為什么訊息會進入死信佇列?我在想既然訂閱者在拉,服務總線無法知道為什么訊息無法完成,但我不知道在哪里登錄應用程式以確定原因。就像我說的,我在 on 訊息的第一行添加了日志記錄,檢查了 iis 日志,似乎可以在其他環境中作業,并且還可以在 prod 中查看其他訊息……
任何建議將不勝感激!
uj5u.com熱心網友回復:
它最終成為一個未打開的埠,并在有效負載大于 65kb 時嘗試使用,不知道為什么只有在有效負載達到 65kb 時才引入它。找不到任何錯誤被拋出,但得到這個測驗來自服務器的埠:
[SocketException (0x274c): 連接嘗試失敗,因為連接方在一段時間后沒有正確回應,或者連接失敗,因為連接的主機沒有回應。. . :9354] System.Net.Sockets.Socket.InternalEndConnect(IAsyncResult asyncResult) 6682835 System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult) 88 System.ServiceModel.Channels.ConnectAsyncResult.OnConnect(IAsyncResult 結果) 103
打開埠后,它似乎作業正常。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/483256.html
下一篇:計算百分比Python
