0

現在、セキュリティで保護されていない WCF サービスと通信している Silverlight クライアントがあります。

1>WCFサービスをセキュアにしたい(https対応) 2>Silverlightクライアントでセキュアなwcfサービスを参照したい。

誰でもサービスの構成を手伝ってもらえますか?

Web.config:

<serviceHostingEnvironment aspNetCompatibilityEnabled="true"></serviceHostingEnvironment>

<bindings>
  <basicHttpBinding>
    <binding name="MyBasicHttpBinding" >          
      <security mode="Transport" >
        <transport clientCredentialType="None"/>
      </security>
    </binding>
  </basicHttpBinding>
</bindings>

<services>
  <service behaviorConfiguration="DataService.Service1Behavior"
    name="DataService.Service1">
    <endpoint address="" binding="basicHttpBinding" bindingConfiguration="MyBasicHttpBinding"
      contract="DataService.IService1">         
    </endpoint>
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
  </service>     
</services>

<behaviors>
  <serviceBehaviors>
    <behavior name="DataService.Service1Behavior">
      <serviceMetadata httpGetEnabled="true" />
      <serviceDebug includeExceptionDetailInFaults="true" httpHelpPageEnabled="true" httpsHelpPageEnabled="true" />
    </behavior>      
  </serviceBehaviors>
</behaviors>

次のエラー メッセージが表示されます。

バインディング BasicHttpBinding を持つエンドポイントのスキーム https に一致するベース アドレスが見つかりませんでした。登録されているベース アドレス スキームは [http] です。

4

2 に答える 2

2

修正する必要がある主な部分は、次の構成で指定されているバインディングとサービスの動作です

1) binding="basicHttpBinding" の場所で binding=" wsHttpBinding " を使用 2) binding=" mexHttpBinding " の場所で binding=" mexHttpsBinding " を使用3 ) サービス動作 serviceMetadata httpsGetEnabled ="true" で

ここで、https で WCF を構成するための非常に簡単な手順を見つけることができます。

于 2011-03-17T08:18:54.533 に答える
-2

service 要素に baseAddresses セクションを追加してみてください。

<services>        
  <service behaviorConfiguration="DataService.Service1Behavior"
    name="DataService.Service1">
    <host>
      <baseAddresses>
        <add baseAddress="https://[your url]"/>
        <add baseAddress="http://[your url]"/>
      </baseAddresses>
    </host>
    <endpoint address="" binding="basicHttpBinding" bindingConfiguration="MyBasicHttpBinding"
      contract="DataService.IService1">         
    </endpoint>
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
  </service>     
</services>
于 2011-03-17T07:56:11.577 に答える