【问题标题】:Using BizTalk WCF-WSHttp send adapter to consume web service with WS-Security over HTTP使用 BizTalk WCF-WSHttp 发送适配器通过 HTTP 使用 WS-Security 的 Web 服务
【发布时间】:2012-04-24 09:18:44
【问题描述】:

第三方供应商公开了我们需要使用的 Web 服务。

这是一个 SOAP Web 服务,它还需要在标头中包含 WS-AddressingWS-Security 元素。

我相信在 BizTalk 2009 中使用 WCF-WSHttp 适配器应该可以使用此 Web 服务。但是我对 WCF 和 WS-Security 都是新手,所以有点挣扎。

我尝试使用以下设置设置发送适配器:

  • 安全模式:传输
  • 传输客户端凭据类型:证书
  • 客户端证书指纹:[已选择]

我遇到的第一个问题是,当使用这种安全配置时,BizTalk 强制我指定一个 HTTPS 端点,而第三方 Web 服务是通过 HTTP 进行的。

如果我尝试指定 HTTP 端点,这是 BizTalk 给我的错误:

这是 BizTalk 的限制,还是供应商公开其 Web 服务方式的根本问题?

此外,如果有人能指出任何关于将 WCF 适配器与 WS-Security 结合使用的有用指导,那将非常有用,因为我一直在努力寻找任何指导。

【问题讨论】:

    标签: biztalk ws-security biztalk-2009


    【解决方案1】:

    要让 BizTalk 接受绑定,请使用 https://... 地址对其进行配置,然后更改绑定文件中的地址并重新导入绑定。

    如果 BizTalk 允许这样做(即这只是 WCF 对话的一个约束),那么您将能够实际使用该服务并对其进行测试。

    【讨论】:

    • 狡猾的想法......现在试试这个
    • 它允许我导入修改后的绑定,但在测试时消息被挂起并显示相同的错误消息:System.ArgumentException: The provided URI scheme 'http' is invalid; expected 'https'. 所以 BizTalk 不允许这样做。然而,这是一个有效的场景吗?也许我应该修改我的问题。
    • 说实话,我不确定,但在我看来,您不能在非安全 http 中使用安全证书似乎是合乎逻辑的。也许您应该联系服务发布者并询问他们。
    • 我已接受您的回答,因为您帮助我确定 BizTalk 根本不允许这样做。
    【解决方案2】:

    安全模式:需要传输 https。这是 WCf 的概念,不能与任何其他调整一起使用

    【讨论】:

      【解决方案3】:

      如果您遇到此问题,请确保“安全”选项卡中的“安全模式”下拉菜单设置正确。

      【讨论】:

      • 这解决了我在 BizTalk 2013 中使用 WCF-BasicHttp 发送端口的问题!安全模式“无”需要 http 方案,而“传输”需要 https。
      • 好的,请点击向上箭头!
      • 我做到了!正确答案(至少对我而言)是-1,这是不公平的。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多