在wsdl中更改架构位置

时间:2012-06-12 06:02:38

标签: c# wcf

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

有什么建议吗?

1 个答案:

答案 0 :(得分:5)

我建议使用WCFExtrasHOWTO)或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>
    
  3. 您也可以使用SoapExtensionReflector

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

    [ServiceBehavior(AddressFilterMode = AddressFilterMode.Any)]