0

https 経由で wsDualHttpBinding を使用するように wcf サービスを構成しようとしています。私の現在の設定は次のようになります。

サービス

<service behaviorConfiguration="SecureBackendWebServiceBehavior"
      name="WebService.InternalService.BackendWebService">
      <endpoint address="" 
        binding="wsDualHttpBinding" 
        bindingConfiguration="SecureBackendWebServiceWsDualHttpBinding"
        name="BackendWebServiceEndpoint" 
        contract="WebService.InternalService.IBackendWebService"/>
</service>

バインディング

<binding name="SecureBackendWebServiceWsDualHttpBinding" 
  receiveTimeout="00:05:00"
  bypassProxyOnLocal="false" 
  transactionFlow="true" 
  maxBufferPoolSize="2147483647"
  maxReceivedMessageSize="2147483647" 
  messageEncoding="Mtom">
        <readerQuotas maxDepth="2147483647" 
           maxStringContentLength="2147483647"
           maxArrayLength="2147483647" 
           maxBytesPerRead="2147483647" 
           maxNameTableCharCount="2147483647" />
      <security mode="Message">
        <message clientCredentialType="Certificate" />
      </security>
</binding>

行動

<behavior name="SecureBackendWebServiceBehavior">
      <serviceMetadata httpsGetEnabled="true"/>
      <serviceDebug includeExceptionDetailInFaults="true" />
</behavior>

ブラウザでサービスを呼び出すと、エンドポイント バインディング WSDualHttpBinding でスキーマ "http" のベースアドレスが見つかりませんでした。登録されているbaseaddressschemaは「https」です。

問題をグーグルで検索すると、通常の wsHttpBindings のサンプルのみが得られ、デュアルバインディングのサンプルは得られません。すでに HttpsGetUrl を入力しましたが、同じエラーが発生しました。私は何らかの値を監視しましたか、それともなぜ彼は http 経由で情報を取得しようとしているのでしょうか?

ところで。バインドを NetTcp に変更することはできません

ここで私を助けてくれることを願っています。どうも

4

2 に答える 2

1

自分で解決策を見つけました。私はパターンとプラクティスを使用して、Web サービス セキュリティの向上: WCF のシナリオと実装ガイダンスを使用して、WCF のセキュリティをよりよく理解しました。この本には、特定のシナリオのハウツーも含まれています。私が追加しなければならなかった唯一のこと。

私の Web サービスは 3 つの小さなサービスに分かれているため、そのうちの 1 つは WsDualHttpBinding を使用しており、これはトランスポートに ssl 証明書を必要としないことを iis に伝える必要がありました。

とりあえずサービストークですが、本当に自分が欲しいセキュリティを使っているのか確認する必要があります。

更新:ステップバイステップのチュートリアルも含まれているこの記事を 見つけました。

于 2013-01-16T07:03:21.770 に答える
1

wsDualHttpBinding はトランスポート セキュリティをサポートしていません。

MSDN:

WSDualHttpBinding は、WSHttpBinding と同じ Web サービス プロトコルのサポートを提供しますが、二重コントラクトで使用します。WSDualHttpBinding は SOAP セキュリティのみをサポートし、信頼できるメッセージングを必要とします。

したがって、ここでのみメッセージ セキュリティを利用できます。

于 2013-01-10T16:36:22.877 に答える