2009-10-19 58 views
0

我有一個使用請求響應端口調用Web服務並等待響應的編排。 這是完美的工作。Biztalk編排請求 - 響應異常處理

我現在正在做測試來處理錯誤,我正在調用一個拋出除以零異常的Web服務。 編排不會將異常作爲異常捕獲;它的行爲就好像我收回的SOAP錯誤是一個常規字符串。

但是,當我只用一個請求端口測試了這種行爲後,我終於在編排的catch塊內除以零異常。 我需要在請求響應端口中捕獲Web服務異常,而不僅僅是在單向端口上。

+0

您是使用SOAP還是WCF適配器? – 2009-11-09 08:42:01

+0

我正在使用WCF適配器 – 2010-01-14 09:08:55

回答

1

這種類型的,你會看到錯誤的是因爲沒有與從Web服務的HTTP響應的問題。 BizTalk嘗試解析接收到的響應並將其分解爲標題和正文,然後解析標題。如果響應格式錯誤的HTTP,它會導致這種錯誤。它使用SOAP librbary來解釋響應消息,並且因爲消息不好而炸燬。除以零可能會發生,因爲它不能準確地得到頭部的響應長度,然後掃描一些數學。

我會在行上放置數據包嗅探器(如NetMon)並查看實際發送到BizTalk的內容。如果它不符合HTTP(瀏覽規範或爲傻瓜找到一個好的HTTP),BizTalk可以做出不可預測的反應。

祝你好運。

1

你必須先按照規則玩!

爲了趕在Biztalk的示波器塊中的異常,同時使用一個請求 - 響應端口,您可能需要執行以下操作...

  1. 設置你的身體的重試次數爲0您用來綁定的請求響應端口。
  2. 在編排中的邏輯請求 - 響應端口上啓用標誌傳遞通知以'傳輸'。
  3. 捕獲「System.Web.Services.Protocols.SoapException」異常並按照您的請求處理它。

希望這會有所幫助。

參考文獻:有代碼的項目看看我的文章 Code Project

+1

除了一個問題之外,一切都按照您的寫法完成了 我正在使用動態端口,並且端口上沒有retry-count屬性(或者我沒有看到它) – 2009-10-23 10:08:33