У меня есть служба Windows, которая выполняет следующие действия при запуске. При запуске через консольное приложение он работает нормально, но как только я ставлю службу Windows, я получаю следующее исключение. Вот то, что я пытался до сих пор:SocketException предотвращает использование C# TCPListener в службе Windows
- Отключен брандмауэр, а также попытался добавить явные исключения для EXE, порт и протокол
- Проверил CAS Policy Config, показывает неограниченные права
- сконфигурированных Услугу работать в качестве учетной записи администратора, Local System, Local Service и Network Service, каждый с тем же результатом
- Пробовал разные порты
- также пытались 127.0.0.1 просто увидеть ... тот же вопрос
Это вредительство мою голову, так что любая помощь будет принята с благодарностью:
Код:
var _listener = new TcpListener(endpoint); //192.168.2.2:20000
_listener.Start();
Результирующий Исключение:
Service cannot be started. System.Net.Sockets.SocketException: An attempt was made to access a socket in a way forbidden by its access permissions
at System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress)
at System.Net.Sockets.Socket.Bind(EndPoint localEP)
at System.Net.Sockets.TcpListener.Start(Int32 backlog)
at System.Net.Sockets.TcpListener.Start()
at Server.RequestHandler.StartServicingRequests(IPEndPoint endpoint)
at Server.Server.StartServer(String[] args)
at Server.Server.OnStart(String[] args)
at System.ServiceProcess.ServiceBase.ServiceQueuedMainCallback(Object state)
Можете ли вы показать нам код, который вы использовали для настройки конечной точки? Здесь больше информации, но я не уверен, что это вам поможет http://support.microsoft.com/kb/819124 – TimothyP
Конечно, конечная точка была установлена с помощью «нового IPEndPoint (IPAddress.Parse (args [0]), Convert.ToInt32 (args [1])) ". Эти аргументы передаются через панель управления службой, и я подтвердил, что для IP-адресов локальных компьютеров установлено значение 192.168.2.2, а для порта установлено значение 20000, хотя я также пробовал другие порты. – JoeGeeky
Какая операционная система - это то, над чем вы работаете? Какая версия .NET Framework? Кроме того, можете ли вы убедиться, что к этому порту не привязан режим ядра или процесс usermode (netstat -n -a -P TCP)? – feroze