0
私はWCFを使ってguiと通信するWindowsサービスを持っています。私はGUIからサービスを再起動したい残念ながら、ときに私がメッセージを取得します(設定を再ロードする):WCFがポートを解放するのを待つ方法はありますか?
0.0.0.0:1111
私は再起動してるIPエンドポイント上のリスナーがすでにあります
if (sc.Status == ServiceControllerStatus.Running)
{
sc.Stop();
sc.WaitForStatus(ServiceControllerStatus.Stopped);
sc.Start();
}
問題は、サービスコントローラーが停止し、WCFはまだポートを解放していなかった上、すでに地位を持っていることです:休閑コードを使用してサービス。これが起こるのをどうやって待つことができますか?
ポートはTIME_WAITに残っていましたか? – Mark
これはtcp接続なので、おそらく答えはyesです。ポートは長時間ブロックされません。ほんの数秒でサービスを再開できます。 – kyrisu
あなたはあなたのOnStopメソッドで何をしましたか?コードを表示してください。 –