我在我的web.config for WCF中有以下配置.
<serviceMetadata httpGetEnabled="true" />
Run Code Online (Sandbox Code Playgroud)
所以一旦我这样做,我将获得wsdl中的模式位置
<xsd:import schemaLocation="http://mysever/Projectname/Services/myService?xsd=xsd0" namespace="MyServiceHost/Service/01/2011"/>
Run Code Online (Sandbox Code Playgroud)
但我想将其更改为https:// mysever/Projectname/Services/myService?xsd = xsd0.
我无法启用httpsGetEnabled = true,因为我将通过http获取wsdl,但我希望在https中获得服务请求.
我正在使用负载均衡器,其中负载均衡器对Web服务器的流量超过http.
有什么建议?
我建议使用WCFExtras(HOWTO)或WCFExtrasPlus.
如何使用ECFExtras:
将以下扩展名添加到配置文件中
<extensions>
<behaviorExtensions>
<add
name="wsdlExtensions"
type="WCFExtras.Wsdl.WsdlExtensionsConfig, WCFExtras, Version=1.0.0.0, Culture=neutral"
/>
</behaviorExtensions>
</extensions>
Run Code Online (Sandbox Code Playgroud)添加自定义行为
<behavior name="CustomBehavior">
<wsdlExtensions location="https://mysever/Projectname/Services/myService.svc"/>
</behavior>
Run Code Online (Sandbox Code Playgroud)您也可以使用SoapExtensionReflector.
此外,您需要将以下属性添加到服务声明中,以便能够通过负载均衡器使用该服务.
[ServiceBehavior(AddressFilterMode = AddressFilterMode.Any)]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1352 次 |
| 最近记录: |