Tcplistener in VB.NET сервис не работает
Привет,
Должно быть, я что-то упустил, но искал уже несколько часов и не могу найти что!
У меня есть рабочий VB.net приложение forms, которое я пытаюсь преобразовать в сервис. Ниже я использовал один и тот же код в обоих случаях. Он работает в приложении forms, но не в сервисе.
..... listener = New TcpListener(Net.IPAddress.Any, Port) listener.Start() listenThread = New Threading.Thread(AddressOf WaitForRequest) listenThread.IsBackground = True listenThread.Start() ....... Private Sub WaitForRequest() Try Dim recclient As New TcpClient While True Log("wait") recclient = listener.AcceptTcpClient Log("receiving") ......
(log записывает строку в файл, это работает в обоих случаях)
Служба настроена на использование учетной записи администратора, имеющей доступ к сети.
Приложение работает, и когда что-то получено, журнал "получение" затем продолжается; служба никогда не проходит мимо "wait"/ recclient =.
Слушатель слушает - Если я попытаюсь запустить приложение, когда служба работает, я получу ошибку " только одно использование каждого сокета...". И когда я останавливаю службу, я регистрирую ошибку " операция блокировки была прервана вызовом WSACancelBlockingCall...".
Я думаю, что это что-то очевидное, но я просто не могу этого видеть!
Кто-нибудь может помочь? Спасибо.
Что я уже пробовал:
Я пробовал "локальная служба", "локальный компьютер" и "сетевая служба". NetworkService звучал многообещающе,но не работал.
Различные перестановки кода, но то, что дано, кажется самым близким к запуску - хотя это просто не работает!!
В журнале событий ничего нет.