2

當從web服務無響應我有以下行程: Test ItineraryESB工具包 - 使用業務流程擴展

  • 單向接收位置傳遞消息到被提取的內消息的編排(無法在地圖中執行此操作)。

  • 然後映射從編排返回的消息,並映射該映射的結果 ,再次映射。使用Microsoft.Practices.ESB.Services.Transform服務。

  • 然後通過Microsoft.Practices.ESB.Services.Routing服務將其傳遞給Web服務,該服務可以正常啓動,但我沒有收到想要寫入文件的預期響應。寫入文件的消息是傳遞給Web服務的消息,而不是預期的響應。使用更簡單的路線測試Web服務,即沒有編排擴展程序的Web服務顯示Web服務按預期工作。

  • OffRamp來自GlobalBank.ESB示例應用程序。

如何從Web服務獲取所需響應?

回答

2

所以終於設法找到了解決這一對,我有充分的信貸以this guy

問題是Microsoft.Practices.ESB.Services.Routing服務只提供一個單向操作,因此,即使如果您使用雙向消息交換模式標記解析器,則無法工作。

如果您在BizTalk管理控制檯檢查Microsoft.Practices.ESB應用程序,它有這勢必會編排一個單向動態發送端口Microsoft.Practices.ESB.Agents_2.1.0.0_Microsoft.Practices.ESB.Agents.Delivery_DeliveryPort_31bf3856ad364e35 Microsoft.Practices.ESB.Agents.Delivery。當您使用協調擴展程序並使用Microsoft.Practices.ESB.Services.Routing服務時,此端口用於發送任何呼叫,並且因爲這是單向端口,所以您不會得到響應。

您需要在callwebservice形狀中使用雙向編排。示例雙向業務流程位於MultipleWebServices ESB示例中。如果您部署該業務流程並將其註冊爲行程服務並將其用於callwebservice形狀,則它將起作用。

,並或多或少都:)部署業務流程,並通過添加一個條目itineraryServices節點之間的ESB配置其註冊到ESB作爲一個行程服務:

  <itineraryService id="04BD6120-06E4-43D3-A56F-2FF061D59862" name="ESB.MultipleWebServices.Orchestrations.TwoWayRouting" type="ESB.MultipleWebServices.Orchestrations.TwoWayRouting, Biztalk.EsbGeneric.Orchestrations, Version=1.0.0.0, Culture=neutral, PublicKeyToken=140bc5dcbb9afcea" scope="Orchestration" stage="None"/> 

創建一個id使用guidgen時,類型由管理控制檯中orchestraiton的名稱和組合(逗號分隔)組成,並且取決於您部署到的應用程序。範圍和階段如上所示。

起初,我對發送端口Biztalk.HoopleEsbGeneric.Orchestrations_1.0.0.0_ESB.MultipleWebServices.Orchestrations.TwoWayRouting_RoutingPort_140bc5dcbb9afcea一個錯誤,但改變了發送和接收管道向PassThruTransmit和PassThruReceive分別解決了這一點。