0

我在 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。

有什么建议么?

4

1 回答 1

5

我建议使用WCFExtras ( HOWTO ) 或WCFExtrasPlus

如何使用 ECFExtras:

  1. 在配置文件中添加以下扩展名

    <extensions>
      <behaviorExtensions>
        <add
          name="wsdlExtensions"
          type="WCFExtras.Wsdl.WsdlExtensionsConfig, WCFExtras, Version=1.0.0.0, Culture=neutral"
        />
      </behaviorExtensions>
    </extensions>
    
  2. 添加自定义行为

    <behavior name="CustomBehavior">
      <wsdlExtensions location="https://mysever/Projectname/Services/myService.svc"/>
    </behavior>
    

您也可以使用SoapExtensionReflector

此外,您需要将以下属性添加到服务声明中,才能通过负载均衡器使用该服务。

[ServiceBehavior(AddressFilterMode = AddressFilterMode.Any)]
于 2012-06-12T06:17:53.570 回答