2010-02-27 22 views
1

我目前有一個BizTalk 2006(r1)應用程序,它使用SQL適配器從SQL存儲過程接收XML。它在發送給第三方之前將其映射到另一個模式。發送端口使用自定義管道組件將XML轉換爲平面文件 - 以客戶所需的格式。我不使用任何編排,這是一個純粹的基於消息的解決方案。BizTalk發送平面文件到Web服務

通過FTP發送時,這一切都很好。但是,第三方現在要求我將消息推送給他們主持的Web服務。我還沒有收到WSDL,但可以假設我將調用的方法只是將字符串作爲單個參數接收。

任何人都可以建議最好的方法來處理這個請嗎?我創建了一個簡單的Web服務存根。然後,我遵循優秀的BizTalk 2006食譜書中的6-11食譜,使用wsdl.exe生成代理類,然後我從SOAP發送端口的「Web服務」選項卡中引用它。但是,在處理訂單時,我在事件日誌中收到以下消息:

無法從程序集'Direct.IS.Payment.Components,版本= 3.1.145.0,Culture = neutral,PublicKeyToken =加載類型'WSProxy' dc03da781bea1472'。「。 該類型必須來自System.Web.Services.Protocols.SoapHttpClientProtocol。 該類型必須具有屬性System.Web.Services.WebServiceBindingAttribute。」。

下一步將是我的代理玩弄,以便它解決偶數日誌消息中提到的派生和屬性問題。但是,我不禁想到一定有更簡單的方法?

由於

+0

我在[Saravana的網站]找到了答案(http://blogs.digitaldeposit.net/SARAVANA/post/2007/01/31/Calling-Web-Service-from-BizTalk-2006-in-a-Messaging - 只 - Scenario-(又名-基於內容的路由)的.aspx) – 2010-03-02 22:20:06

回答

0

已創建不產生一條消息,是適合於SOAP傳輸的自定義管道組件。不知道最終客戶會做什麼,我會暫停嘗試使SOAP工作。與此同時,只是旋轉了一個ASPX頁面下面的代碼:

private void Page_Load(object sender, EventArgs e) 
    { 
    StreamReader reader = new StreamReader(page.Request.InputStream); 
    String xmlData = reader.ReadToEnd(); 
    } 

添加代碼來寫XMLDATA到一個數據庫或文本文件或東西,看看它是什麼。這非常粗糙,不會發送回復代碼。它應該讓你開始。