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に変更したいと思います。

http 経由で wsdl を取得するため、httpsGetEnabled = true を有効にすることはできませんが、https でサービス リクエストを取得したかったのです。

ロードバランサーから Web サーバーへのトラフィックが 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 に答える