C# WCF中的WSDL URI是什么?

C# WCF中的WSDL URI是什么?,c#,wsdl,wcf,C#,Wsdl,Wcf,什么是WSDL?我在谷歌搜索时找不到很多参考资料… 我如何知道我的WCF web服务的WSDL URI?一些关于WSDL的好教程: 如果您的Web服务地址为 http://services.aonaware.com/DictService/DictService.asmx 您可以通过以下方式访问wsdl文件: http://services.aonaware.com/DictService/DictService.asmx?WSDL WCF服务的WSDL通常通过向服务的HTTP(s

什么是WSDL?我在谷歌搜索时找不到很多参考资料…

我如何知道我的WCF web服务的WSDL URI?

一些关于WSDL的好教程:

如果您的Web服务地址为

http://services.aonaware.com/DictService/DictService.asmx
您可以通过以下方式访问wsdl文件:

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

WCF服务的WSDL通常通过向服务的HTTP(s)URL添加
?WSDL
来检索。但是您必须允许在
ServiceMetadataBehavior
中进行此WSDL检索。如果使用WCF服务应用程序项目模板,WCF 4默认情况下允许对所有基于HTTP的服务执行此操作:

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

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

在WCF3.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 GET才能以这种方式检索WSDL。您还可以使用WS-MetadataExchange协议从中检索服务元数据-它还支持不同的传输协议。WCF中的WSDL仅用于SOAP服务。

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

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