【问题标题】:wsdl.exe results in "SOAP 1.1 binding was not found"wsdl.exe 导致“找不到 SOAP 1.1 绑定”
【发布时间】:2008-10-30 17:38:49
【问题描述】:

我正在尝试实现 HTML Parsing Web 服务,如 ASP.NET Unleashed(第 1 版)第 23 章和 this MSDN article 中所述。到目前为止,一切都很好!但是,在使用 wsdl.exe 生成类时,我确实收到了一个恼人的警告:

Microsoft (R) Web 服务描述语言实用程序 [Microsoft (R) .NET Framework,版本 2.0.50727.3038] 版权所有 (C) 微软公司。版权所有。 警告:此 Web 参考不符合 WS-I Basic Profile v1.1。 未找到 SOAP 1.1 绑定:WS-I 的基本概要 1.1 包括 建议如何使用一组核心 Web 服务的实施指南 应该一起使用规范来开发可互操作的 Web 服务。对于 1.1 Profile,这些规范是 SOAP 1.1, WSDL 1.1、UDDI 2.0、XML 1.0 和 XML 模式。 有关 WS-I Basic Profile v1.1 的更多详细信息,请参阅规范 在 http://www.ws-i.org/Profiles/BasicProfile-1.1.html。

如果可能,我希望符合规范。我查看了recommended page 并在 w3.org 上找到了几页,但没有找到我需要包含哪些 xml 元素以符合要求的具体示例。

为了代替发布我的 xml,我只想说 wsdl 大致符合 MSDN 文章中使用的内容(除了我通过添加“.dtd”修复了 w3.org 上 XMLSchema 的无效 URL)。

谢谢!

【问题讨论】:

    标签: c# asp.net web-services wsdl


    【解决方案1】:

    Wsdl.exe 默认使用 SOAP 作为要实现的协议,因此会尝试检查与基本配置文件的一致性。无论如何,wsdl.exe 会处理这个问题,并且只会发出警告。如果您检查MSDN article file,您会注意到绑定配置为使用HttpGet 协议。所以,如果你想抑制警告,运行

    wsdl.exe /protocol:HttpGet <url or path> 
    

    但是,生成的代理类与前一个相同。

    旁注:您不必修复任何定义命名空间的 URL,因为它不是用作 URL 而是用作标识符。尽管许多名称空间看起来像 URL,但它们不需要指向 Web 上的实际资源。命名空间http://www.w3.org/2001/XMLSchema 由W3C 在XML Schema recommendation 中定义。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-22
      • 1970-01-01
      相关资源
      最近更新 更多