2012-06-12 48 views
0

我在WCF的web.config中有以下配置。在wsdl中更改模式位置

<serviceMetadata httpGetEnabled="true" /> 

所以一旦我這樣做,我會在WSDL獲得模式位置爲

<xsd:import schemaLocation="http://mysever/Projectname/Services/myService?xsd=xsd0" namespace="MyServiceHost/Service/01/2011"/> 

但我想改變這種狀況,以HTTPS:// mysever /項目名/服務/爲myService XSD = xsd0。

我無法啓用httpsGetEnabled = true,因爲我將通過http獲取wsdl,但我想要https中的服務請求。

我正在使用loadbalancer,其中負載均衡器到web服務器的流量已經超過http。

有什麼建議嗎?

回答

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> 
    

您也可以使用SoapExtensionReflector

此外,您需要將以下attribute添加到服務聲明中,以便能夠通過負載平衡器使用該服務。

[ServiceBehavior(AddressFilterMode = AddressFilterMode.Any)] 
+0

我正在試試這個,一旦完成就會標記這個答案。謝謝 – HashCoder