2014-11-13 4 views
3

У меня было работающее приложение ASP.NET, работающее на автоматически сгенерированном порту, например 53000. После перехода на другой порт (8080 в моем случае) IIS Express начал отвечать 503 Service Unavailable. Другие порты работали.Ответы служб IIS Служба недоступна для локального запроса на конкретном порту

В Интернете полно советов по проверке и отладке, в то время как в большинстве случаев советы относятся к IIS или к удаленным компьютерам. Тем не менее я попытался:

  • Обзор %userprofile%\Documents\IISExpress\config\applicationhost.config
  • Предоставление разрешений с netsh http add urlacl url=http://mymachinename:50333/ user=everyone
  • испытания одного и того же приложения на другом компьютере с портом 8080 - сделал работу
  • Ран другой сервер (mongoose) на порт 8080 - сделали не работают
  • проверенными, что порт слушаются с netstat - нет проблем

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

ответ

12

Наконец-то я решил проблему после прочтения этого сообщения - http://haacked.com/archive/2007/05/21/the-iis-7-team-rocks.aspx/. В частности, предлагается рассмотреть привязки urlacl и удалить проблемные. Оказалось, что когда-то в прошлом была добавлена ​​привязка к 8080 году. Как ни странно, он разрешал доступ с каждого компьютера каждому пользователю к этому порту, но, видимо, это была проблема.

Решение: run netsh http show urlacl. Я нашел 2 соответствующих привязок - один старый и другой недавний, как:

Reserved URL   : http://+:8080/ 
    User: \Everyone 
     Listen: Yes 
     Delegate: No 
     SDDL: D:(A;;GX;;;WD) 

Удалите ее с netsh http delete urlacl url=http://+:8080/