2011-06-24 8 views
0

WindowsサービスでREST WCFサービスを自己ホストしています。このサービスは、ブール値を返すメソッドを公開しており、REST WebサービスをWinXp上で動作させることができます。また、makecertを使って開発証明書を生成し、サービスが受信するポート(1443)に割り当てました。 HttpsはWinXpでもうまく動作します。しかし、Win2003で同じものを使用し、IEにURLを入力すると、「ページを表示できません」と表示されます。サービスをホスティングする際にエラーはなく、サービスはポートで待機します(ServiceHost.Openにはエラーがありませんでした)。このためWin2003で行わなければならない設定はありますか? Win2003はプロダクション環境であり、httpsはこれを実行しなければなりません。ここでREST WCF Win2003上のWindowsサービスのサービスホスティング(https)

は、私が使用する設定ファイルは、任意のアイデアは、

<system.serviceModel> 
<bindings> 
    <webHttpBinding> 
    <binding name="httpBinding"> 
     <security mode="Transport"> 
     <transport clientCredentialType="None"/> 
     </security> 
    </binding> 
    </webHttpBinding> 
</bindings> 
<services> 
    <service behaviorConfiguration="spectrumServiceBehavior" name="MyApp.TestService"> 
    <host> 
     <baseAddresses> 
     <add baseAddress="https://localhost:1443/" /> 
     </baseAddresses> 
    </host> 
    <endpoint address="" 
       binding="webHttpBinding" 
       bindingConfiguration ="httpBinding" 
       contract="MyApp.ITestService" /> 
    </service> 
</services> 
<behaviors> 
    <serviceBehaviors> 
    <behavior name="spectrumServiceBehavior"> 
     <!-- To receive exception details in faults for debugging purposes, 
     set the value below to true. Set to false before deployment 
     to avoid disclosing exception information --> 
     <serviceDebug includeExceptionDetailInFaults="true" /> 
     <serviceMetadata httpsGetEnabled ="true"/> 
    </behavior> 
    </serviceBehaviors> 
</behaviors> 

のですか?

答えて

1

同じ問題が発生しました。 HTTPSで動作するWinXP開発環境、ローカルで作成され、httpcfgでカスタムポートに割り当てられた証明書。 インポートされた証明書と、サービスのWSDLを取得しようとしているときに「中断された接続」を提供する同じhttpcfg構成を持つWindows 2003の実稼働環境。 Windowsのを見ると

は、私は最終的に、このエラーを検出しましたログ:

Event Source: Schannel

A fatal error occurred when attempting to access the SSL server credential private key. The error code returned from the cryptographic module is 0x80090016.

私の問題は、私は、ユーザー・アカウントストアに証明書をインポートして、ローカルストアにコピーされたということでした。このようにプライベートキーが残っています... http://support.microsoft.com/kb/939616(警告なしでも!) 新しい場所で証明書を開くにもかかわらず、プライベートキーの存在を示します!

0

Windows 2003では、アプリケーションがポートでリッスンできるようにする必要があり(管理者として実行されない限り)、SSL証明書をポートに割り当てる必要があります。どちらもhttpcfg.exeによって実行されます。また、ファイアウォールがポート上の通信をブロックしていないことを確認してください。

+0

私はWinXpとWin2003の両方でhttpcfg.exeを使用しました。 SSL証明書がポートに割り当てられ、アプリケーションがポートでリッスンしていて、Imが管理者アカウントで実行していました。私は同じWin2003マシンでURLを試したが、IEはまだページを表示できないというエラーを出す。 –

+0

ファイアウォールとそのマシンで実行されていないファイアウォールもチェックしました。 ICSサービスは実行されていないため、ファイアウォールも実行されていませんでした。 – Rohith

+0

私はまったく同じ問題を抱えています.WindowsXPですべての作業を行いましたが、Windows 2003 R2では何もしませんでした。マイクロソフトのドキュメント/フォーラム/ Q&Aを見てみると、これは常に同じものです...あなたの問題を解決することを期待してここに書いてください。 Tnxを事前に受信する。 –

関連する問題