Ich habe ähnliche Fragen hier, konnte aber keine Antwort finden. Ich habe eine App, die WCF verwendet, um eine Verbindung zu Remote-Adresse zu öffnen, manchmal, wenn ich die App aus dem Task-Manager kille oder die App nicht ordnungsgemäß geschlossen bleibt die Verbindung geöffnet und wenn ich meine App neu starte, bekomme ich eine Ausnahme ein Listener an diesem Port.WCF TCP-Verbindungen bleiben offen, wenn der Prozess beendet wird
paar Fragen:
- warum solche Verbindungen offen bleiben, nachdem ich den Prozess zu beenden?
- Wie kann ich diese Verbindungen schließen, wenn der Prozess nicht ordnungsgemäß beendet wird?
- wie kann ich die verbindungen schließen, bevor ich versuche, eine neue zu erstellen?
serer Seite:
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;
Sie einig serverseitigen Code liefern können – Alex
einige Codes hinzugefügt – meirrav