【问题标题】:what is WSDL URI in WCF?WCF 中的 WSDL URI 是什么?
【发布时间】:2011-02-01 08:34:46
【问题描述】:

什么是 WSDL?我在谷歌搜索时找不到很多参考资料...
我如何知道我的 WCF Web 服务的 WSDL URI?

【问题讨论】:

    标签: c# wsdl wcf


    【解决方案1】:

    一些关于 WSDL 的好教程:

    如果您的 Web 服务地址是

    http://services.aonaware.com/DictService/DictService.asmx
    

    您可以像这样访问您的 wsdl 文件:

    http://services.aonaware.com/DictService/DictService.asmx?WSDL
    

    【讨论】:

      【解决方案2】:

      WCF 服务的 WSDL 通常通过将?wsdl 添加到服务的 HTTP(S) URL 来检索。但是您必须在ServiceMetadataBehavior 中允许此WSDL 检索。如果您使用 WCF 服务应用程序项目模板,WCF 4 默认允许所有基于 HTTP 的服务这样做:

      <behaviors>
        <serviceBehaviors>
          <behavior>
            <serviceMetadata httpGetEnabled="true" />
          </behavior>
        </serviceBehaviors>
      </behaviors>
      

      此外,通过在浏览器中输入基于 HTTP(S) 的服务 URL,您应该会收到带有 WSDL 超链接的帮助页面。

      在 WCF 3.x 中,您必须手动允许它并在服务定义中使用行为配置。

      <behaviors>
        <serviceBehaviors>
          <behavior name="myConfig">
            <!-- requires HTTPS to be configured for your service -->
            <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" /> 
          </behavior>
        </serviceBehaviors>
      </behaviors>
      <services>
        <service name="..." behaviorConfiguration="myConfig">
           ...
        </service>
      </services>
      

      只能通过 HTTP(S) GET 以这种方式检索 WSDL。您还可以使用 WS-MetadataExchange 协议从 Metadata endpoint 检索服务元数据 - 它还支持不同的传输协议。 WCF 中的 WSDL 仅适用于 SOAP 服务。

      【讨论】:

        【解决方案3】:

        WCF 中的 WSDL URI 用于创建可用于与客户端通信的 代理类

        WSDL URI 获取/调用元数据。客户端构建代理类需要了解WCF中使用的服务契约、操作契约、方法以及WCF方法中的参数,没有这些信息客户端将无法生成 代理类,同时在应用程序中托管 WCF 服务,因此元数据实际上负责在应用程序配置文件中生成所有这些信息。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-02-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-05-03
          相关资源
          最近更新 更多