什么是WCF中的WSDL URI?

时间:2011-02-01 08:34:47

标签: c# wsdl wcf

什么是WSDL?谷歌搜索时我找不到很多参考文献...
我怎么知道我的WCF Web服务的WSDL URI?

3 个答案:

答案 0 :(得分:5)

关于WSDL的一些好的教程:

如果您的Web服务地址是

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

你可以像这样找到你的wsdl文件:

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

答案 1 :(得分:2)

通常通过将?wsdl添加到服务的HTTP(S)URL来检索WCF服务的WSDL。但您必须在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服务。

答案 2 :(得分:0)

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

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