我看到类似的问题,但找不到答案。我有一个使用WCF打开到远程地址的连接的应用程序。有时当我从任务管理器中杀死应用程序或者应用程序突然关闭时,连接会保持开启状态。然后,当我重新启动我的应用程序时,会出现异常提示我该端口上已经存在侦听器。
几个问题:
1.为什么这样的连接在我杀死进程后仍然保持开启状态?
2.当进程意外关闭时,我怎样才能关闭这些连接?
3.在尝试创建新连接之前,我怎样才能关闭这些连接?
服务器端:
几个问题:
1.为什么这样的连接在我杀死进程后仍然保持开启状态?
2.当进程意外关闭时,我怎样才能关闭这些连接?
3.在尝试创建新连接之前,我怎样才能关闭这些连接?
服务器端:
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;