6

次のバインディングを持つセルフホスト (コンソール アプリ) WCF REST サービスがあります。

  • WebMessageEncodingBindingElement
  • HttpsTransportBindingElement (ManualAddressing=true、KeepAliveEnabled=true、AllowCookies=false、HostNameComparisonMode=Exact)

これは、HTTPS URL (" https://mylaptop/myendpoint ")を介して公開されます。

myServiceHost.Credentials.ServiceCertificate.SetCertificate を使用して割り当てる「mylaptop」に発行された自己署名証明書があります。証明書が正常に追加され、ServiceHost が正常に開きます (例外なし)。「netsh http show servicestate」と入力すると、https://mylaptop/myendpointで HTTP.SYSに正常に登録されていることがわかります。

ただし、エンドポイントに GET を発行しても機能しません。有効な HTTP 応答が得られる前に、ソケットがドロップされたようです。(FireFox は「サーバーへの接続がリセットされました」と言い、IE は「Web ページを表示できません」と言い、Fiddler を介して要求を行うと、「接続はリモート ホストによって強制的に閉じられました」と表示されます)。

HTTPS の代わりに HTTP を使用すると、すべて正常に動作します。

HTTPS の場合、何が問題になる可能性がありますか?

4

2 に答える 2

6

おそらくhttpcfg.exeを使用して、SSL用に構成されたX.509証明書を使用してHTTP.SYSでエンドポイントを正しく予約する必要があります。それを実行するための手順は、ここに文書化されています。

于 2009-10-05T20:05:46.780 に答える
6

または、HttpCfgGuiを使用します。これは、HTTP.SYSを使用してサーバー証明書を設定するための非常に使いやすいインターフェイスです。これは、HTTP w/WCFを実行するすべてのサーバーにインストールする必要があります。

于 2009-10-05T20:39:54.840 に答える