【问题标题】:Change schema location in wsdl在 wsdl 中更改模式位置
【发布时间】:2012-06-12 06:02:37
【问题描述】:

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

有什么建议吗?

【问题讨论】:

    标签: c# wcf


    【解决方案1】:

    我建议使用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

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

    [ServiceBehavior(AddressFilterMode = AddressFilterMode.Any)]
    

    【讨论】:

    • 我正在尝试这个,一旦完成就会标记这个答案。谢谢
    猜你喜欢
    • 1970-01-01
    • 2011-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-12
    • 1970-01-01
    相关资源
    最近更新 更多