サービスとして、またはWindowsフォームアプリケーションとして実行できるWCFサーバーがあります。 Windows Formsアプリケーションとして実行すると、クライアントアプリケーション経由で接続できます。しかし、私は同じコードを使用してサービスとして実行すると、私はそれに接続することはできません。私は、サービスが実行中であり、その作業を行っていることを確認しました。以下はサーバーの設定ファイルです。 OnStartメソッドが呼び出された後WCFはapplictionとして動作しますが、サービスとしては動作しません。
<system.serviceModel>
<services>
<service name="Cns.TrafficCopService.ManagementService">
<host>
<baseAddresses>
<add baseAddress="http://localhost:8000/TrafficCop/ManagementService" />
</baseAddresses>
</host>
<endpoint address="" binding="wsHttpBinding" contract="Cns.TrafficCopService.IManagementService" />
</service>
</services>
</system.serviceModel>
とそのホスティングコードは、100ミリ秒と呼ばれる:
if (this.serviceHost != null)
{
this.serviceHost.Close();
}
this.serviceHost = new ServiceHost(typeof(ManagementService));
this.serviceHost.Open();
とクライアントの設定ファイル:あなたがサービスを作成するコードを取ることでした
<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding name="WSHttpBinding_IManagementService" />
</wsHttpBinding>
</bindings>
<client>
<endpoint
address="http://localhost:8000/TrafficCop/ManagementService"
binding="wsHttpBinding"
bindingConfiguration="WSHttpBinding_IManagementService"
contract="IManagementService"
name="WSHttpBinding_IManagementService">
</endpoint>
</client>
</system.serviceModel>
どこでホスティングコードを実行しますか? – Grzenio
クライアントとサーバーは同じマシンにありますか?私は "localhost"が問題の一部ではないのだろうか...リモートクライアントは "localhost"を要求しないだろう... –
彼らは同じマシン上にある。ここでもアプリケーションとして動作しますが、サービスとしては動作しません。 –