2011-07-15 9 views
1

私は、WCFアプリケーション(スタンドアロンサービスセルフホストされている)を持っています。これはIISではホストされず、IISでのホストはオプションではありません。 サービスはWCFサービスを公開します。私はサービス契約がHTTPとトランスポートとして機能するので、サービス契約が機能することを知っています。 今、私はhttpsに移動する必要があります。その目的は輸送手段のみを確保することです。サービスに接続している誰かがネットワーク内にいると仮定しているため、クライアント認証は必要ありません。 app.configを変更してhttpsTransportにアクセスし、URLを更新すると、certとportを関連付ける作業を開始しました。説明はhttp://msdn.microsoft.com/en-us/library/ms733791.aspxです。「SSL証明書をポート番号にバインドする」セクションの手順に従っています。これは、ローカルマシン内でうまく機能しました。ルート証明書と開発証明書がmakecert.exeを使用して生成されることに注意してください。 Windowsサーバー2003で同じサービスをホストすると、すべての地獄が緩んでしまいます。クライアントはエンドポイントを見ることさえできません(httpが動作するようにファイアウォールされていないことに注意してください)。私は、httpcfg.exeを使用して、上記のドキュメントに記載されている手順に従ってきました。これは動作しません。 OpenSSLは、サーバが証明書を提供していないと述べています。SSLエラー(輸送を確保するために使用されるSSLのみ)

何が問題になることができますか?

答えて

0

サーバーは、2003年に正しく起動しましたか?

あなたはスニペットを次のようにサーバーの証明書を探すために、あなたのクライアントを設定しましたか?あなたが証明書の名前を誤って入力していないことを確認します。

<endpoint binding="netTcpBinding" bindingConfiguration="DirectConnection" 
      behaviorConfiguration="Behavior" 
      contract="AContract" 
      name="ServiceContract" > 
    <identity> 
     <dns value="ServerCertificate.Com" /> 
    </identity> 

+0

sererが正しく開始しました。サービスが稼働しています(例外およびイベントログのエントリはありません)。サーバー証明書の変更を試してみましょう。ところで、私はbasicHttpBindingとnetTcpBindingを使用していません。 – Chetan

+0

バインディングは次のようになります。 <バインディング名= "bindingName"> Chetan

+0

それは同じである必要があり、を追加してみてください。ところで、ここにクライアントのバインディングを置くことはできますか? – Jack

0

自己署名証明書を使用すると、Windows 2003のサーバー(この特定のインスタンス)で使用することができなかったことが判明しました。私はそれが信頼できない証明書として扱われていると推測しています。いったん正式な証明書を入手したら、物事はまったく変化しませんでした。

関連する問題