2010-01-31 4 views
3

Настройка: Windows 7, IIS установлены и запущены.httplistener не работает на порту 80?

Следующий фрагмент кода:

HttpListener listener = new HttpListener(); 
listener.Prefixes.Add("http://server.com:8080/path"); 
listener.Start(); 

Работает как шарм - любой запрос, сделанный на сервере принимается в моем коде.

Однако, когда я делаю следующие изменения (переход к порту 80) http.sys/IIS (не уверен, какой) возвращает HTTP 503 ошибки:

listener.Prefixes.Add("http://server.com:80/path"); 

Я попытался установить URLACLs, работает этот процесс как admin и т. д., но ничего не меняет этого поведения.

Редактировать: очистить это - в этом беспорядке нет реальной сети. Все это делается локально на одной машине для целей тестирования (как для сервера, так и для клиента).

Любые идеи?

+0

Что относительно вашего брандмауэра? –

+1

Разве IIS не прослушивает этот порт? – Dani

+0

@Mitch, если брандмауэр был бы проблемой, я бы не получил 503. @ Дани, IIS слушает и этот порт, http.sys позволяет нескольким процессам делиться URL-адресами между ними. В этом весь смысл. – Shachar

ответ

1

ОК, не уверен, почему, и я ненавижу такие ответы, однако ... проблема исчезла. Я могу проверить, что ни один код не был изменен, и это не было переходным состоянием рассматриваемой машины, поскольку я пытался перезагрузить его более одного раза во время пробных проб.

Я понятия не имею, что вызвало это.

+0

У меня такая же проблема. После изменения портов, которые я использовал, проблема исчезла. – Brad

0

Я наблюдал то же самое на машине Windows Server 2008 R2. Сначала я разработал свой слушатель на порту 8080, который использует большинство образцов, затем переключитесь на порт 80. В первый раз, когда я запускал порт 80, у меня была либо стартовая страница IIS (роль IIS на моем сервере не установлена ​​в настоящее время, может быть IE кеш) или пустую страницу. У меня были контрольные точки в обработчике, и я мог видеть, что запросы проходят и успешно отвечают. После повторной компиляции (очистки), повторной установки моего сервиса и перезапуска IE, проблема исчезла. Без изменения кода.

Итак, если вы столкнулись с этой проблемой, попробуйте перекомпилировать чистую, переустановите свою службу (или приложение) и перезапустите IE.

Смежные вопросы