2009-07-15 4 views
3

WCF WebサービスでSSLを使用してカスタムバインドを使用しようとしたことがありますか?私はbasicHttpBindingとwsHttpBindingでこれを行う方法の例をいくつも見てきましたが、同等のものは常にcustomBindingで失敗します。カスタムバインドを使用したSSL WCF

<system.serviceModel> 
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true"> 
    </serviceHostingEnvironment> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior name="MyServiceBehavior"> 
      <serviceMetadata httpsGetEnabled="true" /> 
      <serviceDebug includeExceptionDetailInFaults="true" /> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    <bindings> 
     <customBinding> 
     <binding name="binaryHttps"> 
      <binaryMessageEncoding /> 
      <httpsTransport /> 
     </binding> 
     </customBinding> 
    </bindings> 
    <services> 
     <service behaviorConfiguration="MyServiceBehavior" name="MyService"> 
     <host> 
      <baseAddresses> 
      <add baseAddress="https://(myserver)/"/> 
      </baseAddresses> 
     </host> 
     <endpoint address="" 
     binding="customBinding" bindingConfiguration="binaryHttps" 
     contract="MyService" /> 
     <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" /> 
     </service> 
    </services> 
    </system.serviceModel> 

これは実際に私たちは、ウェブからのサービスにアクセスすることがWSDLのgetおよびVisual Studio内のサービス参照を追加することができます:具体的にどのような私は、現在(まだ最も成功した構成)で働いていることは、このようになります申し訳ありませんが、Silverlight-3アプリケーションで実際に試してみると、レスポンスを待って無期限に待っていてタイムアウトすることはありません。実際に私のマシン(メモリ6GB)でしばらくするとメモリの問題が少なくなってしまいます。奇妙なことは、開発環境(厳密にはVSアプリケーションホストを使用している)で、これがすべて機能していることです。実際のSSL証明書を使用して実際のサーバーに展開しようとするまではありませんでした。現れた。

私はこの問題の解決方法をかなり徹底的に調査しましたが、今までに何も見つからず、すべてを試しました。これまでに遭遇したことは誰ですか?

答えて

1

私たちのweb.configでは問題はなかったことは、IIS 7とワイルドカードSSL証明書の問題に関係していました。

つまり、IISでSSL接続と証明書にIPをバインドするときにホスト名を指定することはできません。これは明示的なホスト名を抽出できる非ワイルドカードSSL証明書を期待しているからだと思います。私たちがやったことは、{WindowsDir} \ {System32} \ {Inetsrv} \ {config}内のapplicationHost.configファイルに入り、WebサービスのバインドされたIPアドレスでエントリを見つけ、明示的に(ip ):(ホスト名)。その後、IIS config GUIに正しく表示されました。

これを実行した後、私たちはすべてのサーバー上のSSLチャンネルを完全にオフにして、すべてが美しく動作しました。

ありがとうございました!

-1

AFAIK、SSLを使用するとパフォーマンスに問題があります。私たちはWCFのbehiovrを使って認証をしています。私たちが使っている方法はSilverlight => ASP.NET => WCFです。私たちは、SilverlightとWCFの両方でEndpoint behivorを設定しました。サービスを呼び出すたびに、認証のためにトークンを渡しました。

SilverlightのClientConfigでカスタムバインドを使用できますか?

+0

さて、私たちはSilverlight 3ライブラリのコードでバインディングを行いますが、ClientConfigファイルではバインドしていますが、すべてがローカルマシンで正常に機能しています。それは何か問題があったことを配備するまでではなかった。 – user138420

+0

そして確かに、httpモードのスタンドアロンサーバーでカスタムバインディングを使ってサービスを完璧に稼働させることができましたが、これはアプリケーションのためにカットされません。この問題は、httpsに切り替えようとすると表示されます。 – user138420

関連する問題