0

Azure で SSL を介して実行されているクラウド サービスがあります。サービスを参照しwsdlて SSL 経由で取得することはできsoap address locationますが、そうすると、証明書にバインドされたドメイン名を使用する代わりに、サーバー名を取得する代わりに、正しく返されません。

< soap:address location="http://rd00155d45cc3c/Amazon.svc"/>

私は見ることを期待しています

< soap:address location="https://azure.mydomain.com/Amazon.svc"/>

私の設定

<system.serviceModel>
    <bindings>
        <basicHttpBinding>                
            <binding name="AzureBinding">
                <security mode="Transport" />
            </binding>
        </basicHttpBinding>
    </bindings>
    <services>
        <service name="MyService">
            <endpoint address="" binding="basicHttpBinding" 
                      contract="StudentServiceWCF.IAmazon" 
                      bindingConfiguration="AzureBinding" />
            <endpoint address="mex" binding="mexHttpsBinding" 
                      contract="IMetadataExchange" />
        </service>
    </services>
    <behaviors>
        <serviceBehaviors>
            <behavior>
               <serviceMetadata httpsGetEnabled="true" />
                <serviceDebug includeExceptionDetailInFaults="true"/>
            </behavior>
        </serviceBehaviors>
    </behaviors>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>

app.config クライアント エンドポイントが構成されている

<endpoint address="https://azure.mydomain.com/Amazon.svc"
          binding="basicHttpBinding" 
          bindingConfiguration="BasicHttpBinding_IOutOfDateSecure"
          contract="AzureService.IAmazon" name="BasicHttpBinding_IAmazon" />

<binding name="BasicHttpBinding_IAmazon">
    <security mode="Transport" />
</binding>

アドレスの場所に影響を与える方法がわからないため、証明書のドメイン名を使用しています。http の場所を返しているため、テスト クライアントは例外をスローしています。

http://rd00155d45cc3c/Amazon.svc にある HTTP サービスを利用できません

4

2 に答える 2

1

というわけで、ちょっと古いコメントですが、こちらの記事をチェックしてみてください。

step 6追加する動作 ( UseRequestHeadersForMeatadataAddress) と導入時期について説明しています: KB981002- WCF: ホットフィックス ロールアップの更新。これで問題が解決します。

また、KB981001 は、Windows の公式のホットフィックス / アップデートです。開発マシンと、サービスをデプロイする Windows Azure インスタンスの両方にインストールする必要があります。ただし、古いゲスト OS (特定の osVersion)を明示的に対象としていない場合は、その修正プログラムが既にインストールされている必要があります。

于 2013-04-08T11:17:17.577 に答える