過去 2 日間、MSDN でこの例をうまく使用しようとして、頭をレンガの壁にぶつけてきました。
方法: TCP を使用して Windows サービスで WCF をホストする
例に従ってコンシューマー アプリケーションを同じソリューション内に配置すると、サービスがオフになっていても正常に実行されます。
サービスがオンになっていて、コンシューマ アプリケーションが別のネットワーク ドライブを指定するように公開されている場合、WCF がリッスンしていないため実行されません。
ウォークスルーの次のコードが原因です。
protected override void OnStart(string[] args)
{
if (myServiceHost != null)
{
myServiceHost.Close();
}
myServiceHost = new ServiceHost(typeof(Service1));
myServiceHost.Open();
}
new ServiceHost(typeof(Service1));
私の友人は、次に変更するとnew ServiceHost(typeof(WcfServiceLibrary1.Service1));
、WCF が実際にリッスンを開始することに気付きました。
Windows サービス プロジェクトと WCF プロジェクト内に Service1 というクラスがあり、完全な資格が必要なため、混乱していることは容易にわかります。
他の誰かがこれに遭遇しましたか?