我在WCF的web.config中有以下配置。
<serviceMetadata httpGetEnabled="true" />
因此,一旦我这样做,我将在wsdl中获取模式位置
<xsd:import schemaLocation="http://mysever/Projectname/Services/myService?xsd=xsd0" namespace="MyServiceHost/Service/01/2011"/>
但我想将其更改为 https :// mysever / Projectname / Services / myService?xsd = xsd0。
我无法启用httpsGetEnabled = true,因为我将通过http获取wsdl,但我想在https中获得服务请求。
我正在使用负载均衡器,其中负载均衡器对网络服务器的流量超过http。
有什么建议吗?
答案 0 :(得分:5)
我建议使用WCFExtras(HOWTO)或WCFExtrasPlus。
如何使用ECFExtras:
将以下扩展名添加到配置文件
<extensions>
<behaviorExtensions>
<add
name="wsdlExtensions"
type="WCFExtras.Wsdl.WsdlExtensionsConfig, WCFExtras, Version=1.0.0.0, Culture=neutral"
/>
</behaviorExtensions>
</extensions>
添加自定义行为
<behavior name="CustomBehavior">
<wsdlExtensions location="https://mysever/Projectname/Services/myService.svc"/>
</behavior>
您也可以使用SoapExtensionReflector。
此外,您需要将以下attribute添加到服务声明中,以便能够通过负载均衡器使用该服务。
[ServiceBehavior(AddressFilterMode = AddressFilterMode.Any)]