Ошибка при попытке доступа к порту 80 на компьютере с Windows 7 с помощью C # - PullRequest
2 голосов
/ 30 марта 2012

Мы столкнулись с проблемой при попытке получить доступ к порту 80 на компьютере под управлением Windows 7 с помощью кода C #.

Эта ошибка возникает только на компьютере с Windows 7, в то время как тот же фрагмент кода отлично работает на компьютере с Windows XP.

Код C #, который мы используем, использует базовое программирование сокетов. Ниже приведен фрагмент, где мы привязываем адрес к порту 80.

public static int rx_Port = 80;

IPEndPoint ip_rx = new IPEndPoint(IPAddress.Any, rx_Port);

Если мы пытаемся получить доступ к порту 80, я получаю сообщение об ошибке

"Была сделана попытка доступа к сокету способом, запрещенным его правами доступа"

Я вдвойне уверен, что дал разрешение на порт 80 под всеми категориями для связи через брандмауэр.

Даже простые клиент-серверные программы не работают, если порт 80 указан на компьютере с Windows 7, но тот же фрагмент кода отлично работает на компьютере с Windows XP. Я действительно не могу понять, что здесь происходит ...

Есть мысли о том, как поступить?

1 Ответ

2 голосов
/ 30 марта 2012

Драйвер HTTP в режиме ядра HTTP.sys работает.

Вы можете настроить его, используя netsh.

http://msdn.microsoft.com/en-us/library/windows/desktop/cc308384(v=vs.85).aspx

Например, чтобы увидеть, какой IPадреса, которые он прослушивает:

netsh http show iplisten

Затем вы можете удалить их с помощью

netsh http delete iplisten address=1.1.1.1

(например).

Однако, если вы пишете приложение для Windows, яПредположим, вы, вероятно, хотите сотрудничать с IIS, а не просто отключить его.Если вы используете HttpListener, вы можете настроить его для совместного использования порта с IIS, и он будет получать запросы на определенные префиксы URL, которые вы укажете.

В документации есть простой пример (и я никогда не использовал его сам).

http://msdn.microsoft.com/en-us/library/system.net.httplistener.aspx

Вы должны будете использовать netsh, чтобы дать пользователю право доступа к приложению для префиксов URL, которые вы хотите использовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...