【问题标题】:BizTalk Send Flat File to Web ServiceBizTalk 将平面文件发送到 Web 服务
【发布时间】:2010-02-27 21:09:57
【问题描述】:

我目前有一个 BizTalk 2006 (r1) 应用程序,它使用 SQL 适配器从 SQL 存储过程接收 XML。在发送给第 3 方之前,它会将其映射到另一个模式。发送端口使用自定义管道组件将 XML 转换为平面文件 - 采用客户所需的格式。我不使用任何编排,这是一个纯基于消息的解决方案。

当通过 FTP 发送时,这一切都很好。但是,第 3 方现在要求我将消息推送到他们喜欢的 Web 服务。我还没有收到 WSDL,但可以假设我将调用的方法只是接收一个字符串作为单个参数。

有人可以建议解决此问题的最佳方法吗?我创建了一个简单的 Web 服务存根。然后我按照出色的 BizTalk 2006 食谱书中的食谱 6-11,使用 wsdl.exe 生成代理类,然后我从 SOAP 发送端口的“Web 服务”选项卡中引用该代理类。但是,在处理订单时,我在事件日志中收到以下消息:

无法从程序集“Direct.IS.Payment.Components”中加载类型“WSProxy”,版本=3.1.145.0,Culture=neutral,PublicKeyToken=dc03da781bea1472。”。 该类型必须派生自 System.Web.Services.Protocols.SoapHttpClientProtocol。 该类型必须具有属性 System.Web.Services.WebServiceBindingAttribute。 ”。

下一步我将尝试使用代理,以便它解决偶数日志消息中提到的派生和属性问题。但是,我不禁想,一定有更简单的方法?

谢谢

【问题讨论】:

标签: web-services wsdl biztalk


【解决方案1】:

您创建的自定义管道组件未生成适合 SOAP 传输的消息。不知道最终客户会做什么,我会推迟尝试使 SOAP 工作。同时,只需使用以下代码启动一个 ASPX 页面:

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

添加代码以将 XMLData 写入数据库或文本文件或其他内容以查看它是什么。这是非常粗略的并且不发送响应代码。它应该让你开始。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-23
    • 1970-01-01
    相关资源
    最近更新 更多