什么是WSDL?谷歌搜索时我找不到很多参考文献...
我怎么知道我的WCF Web服务的WSDL URI?
答案 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服务时代理类,因此元数据实际上负责在应用程序配置文件中生成所有这些信息。