StehtimSchilf
Erfahrenes Mitglied
Hi Forum
Ich habe einen .NET Windows Service der auf einem Socket horcht:
So das funktioniert bis jetzt eigentlich sauber (try-catch etc. weggelassen). Wenn ich nun meinen Service über die MMC restarte, dann erhalte ich Fehlermeldungen betreffend:
Also dachte ich mir, schliesse ich den Socket im Service-OnStop()-Event so etwas à la:
Doch damit erhalte ich nun eine Exception bei listener.accept():
Wie schliesse ich denn nun den Socket richtig? Wenn ich den Service nur Stoppe, 2,3 Sekunden warte und dann wieder starte, dann funktioniert es ohne Fehlemeldungen. Einfach der Restart hat er nicht so gerne. Daher möchte ich eben die accept() unterbrechen. Wie geht das nach Kochbuch?
cheerioh & thx
SiS
Ich habe einen .NET Windows Service der auf einem Socket horcht:
Code:
Dim smtpPort as Integer = 2525
Dim ipHostInfo As IPHostEntry = Dns.GetHostEntry(Dns.GetHostName())
Dim localEndPoint As New IPEndPoint(ipHostInfo.AddressList(0), smtpPort)
Dim listener As New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
listener.Bind(localEndPoint)
listener.Listen(10)
'blockierend
Dim socket As Socket = listener.Accept()
So das funktioniert bis jetzt eigentlich sauber (try-catch etc. weggelassen). Wenn ich nun meinen Service über die MMC restarte, dann erhalte ich Fehlermeldungen betreffend:
Normalerweise darf jede Socketadresse (Protokoll, Netzwerkadresse oder Anschluss) nur jeweils einmal verwendet werden
Also dachte ich mir, schliesse ich den Socket im Service-OnStop()-Event so etwas à la:
Code:
'listener.Disconnect(False)
listener.Close()
System.Net.Sockets.SocketException: Ein Blockierungsvorgang wurde durch einen Aufruf von WSACancelBlockingCall unterbrochen
bei System.Net.Sockets.Socket.Accept()
Wie schliesse ich denn nun den Socket richtig? Wenn ich den Service nur Stoppe, 2,3 Sekunden warte und dann wieder starte, dann funktioniert es ohne Fehlemeldungen. Einfach der Restart hat er nicht so gerne. Daher möchte ich eben die accept() unterbrechen. Wie geht das nach Kochbuch?
cheerioh & thx
SiS