1

過去 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 というクラスがあり、完全な資格が必要なため、混乱していることは容易にわかります。

他の誰かがこれに遭遇しましたか?

4

3 に答える 3

1

同じ問題がありました ( stackoverflowの元の投稿からわかるように)。

または、名前空間 WcfServiceLibrary1 内のクラス Service1 の名前を変更して、競合を回避することもできます。

于 2012-10-11T08:50:12.130 に答える
0

using WcfServiceLibrary1;一番上に置く必要があります

于 2012-10-06T15:33:31.173 に答える