Jus*_*tin 5 wcf iis-7 wsdl web-services
我有一个相当标准的WCF服务(在IIS7上托管),在查询时生成一个相当标准的WSDL ?wsdl:
<wsdl:definitions>
<!-- ... -->
<wsdl:service>
<wsdl:port>
<soap:address location="https://machine/virtual_dir/servicename.svc"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
Run Code Online (Sandbox Code Playgroud)
(省略无聊的位)
我正在以一种快速的方式将生成的WSDL中给出的地址更改为完全不同的地址,例如:
https://othermachine/other_dir/other_service.svc
Run Code Online (Sandbox Code Playgroud)
这样做最简单的方法是什么?
mar*_*c_s 10
您可以看到几种方法:
WCF支持许多可扩展性点,WSDL的生成就是其中之一.您可以编写自己的自定义WSDL生成器并将其插入WCF
可能更简单的方法是生成您拥有的WSDL,然后手动调整它,并将该WSDL文件放在某处并将其配置为提供服务(而不是WCF在运行时生成WSDL,当请求时)
您可以使用以下<serviceMetadata>行为配置选项#2 :
<behaviors>
<serviceBehaviors>
<behavior name="StaticMetadata">
<serviceMetadata httpGetEnabled="true"
externalMetadataLocation="(url path to your static WSDL file)" />
</behavior>
</serviceBehaviors>
</behaviors>
Run Code Online (Sandbox Code Playgroud)
如果执行此操作,并且您的服务使用此服务行为,则对WSDL或MEX数据的任何请求都将路由到您提供的静态WSDL,而不是使用WCF通常提供的自动生成的WSDL.