Wie leer Port finden WCF Web-Servicehost zu starten
-
21-08-2019 - |
Frage
Wie kann ich einen nicht verwendeten Port bestimmen, um einen WCF Servicehost startet einen lokalen Host Web-Server auf Host?
Ich fange gerade meinen Dienst auf statisch auf http: // localhost: XXXX XXXX ein statischer Wert ist in meinem Code.
Ich möchte die XXXX mit einem GetUnusedPort () aufrufen ...
ersetzenAlle Gedanken?
Lösung
Best ich finden konnte, war der Versuch, bis Sie eine offene Option ...
http://forums.devshed.com/net-development-87/c-how-to-determine-if-a-port-is-in-use-371148.html
public static bool TryPortNumber(int port)
{
try
{
using (var client = new System.Net.Sockets.TcpClient(new System.Net.IPEndPoint(System.Net.IPAddress.Any, port)))
{
return true;
}
}
catch (System.Net.Sockets.SocketException error)
{
if (error.SocketErrorCode == System.Net.Sockets.SocketError.AddressAlreadyInUse /* check this is the one you get */ )
return false;
/* unexpected error that we DON'T have handling for here */
throw error;
}
}
Andere Tipps
Warum lassen Sie nicht der Benutzer wählen, welcher Port sie wollen auf den Dienst hosten? Um zum Beispiel einen Mehrwert für Ihre Anwendung der Konfigurationsdatei hinzufügen, die zu Ihrem Servicehost übergeben werden. Sie könnten auch zufällig versuchen, eine Portnummer und Test zu erzeugen, um zu sehen, wenn es geöffnet ist, dann wiederholen Sie den Vorgang, wenn eine andere Anwendung bereits es verwendet, wird.