ここで同様の質問がありましたが、回答が見つかりませんでした。私はWCFを使ってリモートアドレスへの接続を開くアプリケーションを持っています。タスクマネージャーからアプリケーションを削除すると、アプリケーションが正常に終了し、接続が開いたままになってしまい、アプリケーションを再起動したときに、このポート上のリスナープロセスが終了するとWCF tcp接続が開いたままになる
いくつかの質問:私は、プロセスを強制終了した後
- は、なぜこのような接続開いたまま?
- プロセスが非正常に終了したときにこの接続を閉じるにはどうすればよいですか?
- 新しい接続を作成する前に接続を閉じるにはどうすればよいですか?
serer側:
var url = Config.GetRemoteServerUrl();
var binding = new NetTcpBinding();
binding.Security.Mode = SecurityMode.None;
binding.ReliableSession.Enabled = Config.RelaiableSession;
binding.ReliableSession.InactivityTimeout = TimeSpan.MaxValue;
binding.MaxConnections = Config.MaxConcurrentSessions;
binding.ReaderQuotas.MaxArrayLength = Config.ReaderQuotasMaxArrayLength;
binding.MaxReceivedMessageSize = Config.MaxReceivedMessageSize;
binding.SendTimeout = new TimeSpan(0,0, 0, 0,Config.SendTimeout);
binding.OpenTimeout = new TimeSpan(0,0, 0, 0,Config.OpenTimeout);
host = new ServiceHost(ServerFacade.Instance, new Uri[] { new Uri(url) });
host.AddServiceEndpoint(typeof(ITSOServiceContract), binding, url);
host.Open();
serverFacade = host.SingletonInstance as IServerFacade;
あなたには、いくつかのサーバー側のコードを提供することができ – Alex
は、いくつかのコードを追加 – meirrav