У меня есть приложение, которое я пытаюсь запустить в своей системе разработки под IIS Express от VS2010, для которого мне нужно использовать порт 80, но я не могу заставить его работать. Я искал информацию о том, что порт 80 зарезервирован.
http://learn.iis.net/page.aspx/1005/handling-url-binding-failures-in-iis-express/
Но даже после этого я все равно получаю ошибку от vs2010, которая говорит
"Невозможно запустить веб-сервер IIS Express. Порт '80' используется."
Я не знаю, что еще попробовать. Я использовал Process Hacker для отслеживания порта 80, и он, похоже, используется System
, работающим с идентификатором процесса 4, который является ядром NT и системным процессом. Я не знаю, если это помешает мне использовать порт, хотя. Я подумал, что это может быть следствием того, что http.sys удерживает этот порт, чтобы никто другой не мог его использовать?
Мне удалось заставить IIS Express работать на порте 80, изменив привязку по умолчанию для файла C:\Users\[MyUser]\Documents\IISExpress\config\applicationhost.config
, и, хотя я могу запустить IIS Express таким образом вручную, VS получает ошибку, потому что привязка уже существует на этом порт. Поэтому я изменяю его обратно на 8080, создаю виртуальный каталог с помощью кнопки в VS2010 (что, как я предполагаю, совпадает с вводом привязки сайта), но я все равно получаю сообщение об ошибке при отладке приложения. Есть ли что-то жестко закодированное в VS2010, которое не позволяет запускать IIS Express через порт 80?
ОБНОВЛЕНИЕ И ИСПРАВЛЕНИЕ: Хорошо, поэтому я нашел еще несколько вещей для проверки и решил проблему, но не полностью. В одном посте предлагалось удостовериться, что у меня не установлены службы отчетов SQL, поскольку он может контролировать порт 80, раньше я его устанавливал, но не больше, и это не было проблемой, с которой я столкнулся. Однако я понял, что у меня установлен WebDeploy. Он был связан с пакетом VS2010 SP1 из установщика веб-платформы . Это нормально, так как мне нужны клиентские инструменты из WebDeploy, но он также установил агент в моей системе, который осуществлял мониторинг на порту 80. Я пошел в свой список служб и остановил Web Deploy Agent Service
. Как только я это сделал, теперь я могу использовать порт 80 для IIS Express из VS2010.
Новая проблема, связанная с работой на порте 80 в IIS Express
Однако мое приложение является приложением MVC3, и я столкнулся с проблемой, потому что MVC3 вообще не захватывает мой запрос, поэтому он не запускает действия моего контроллера или что-то в этом роде, а представляет собой txt-файл в корне моего приложения. можно узнать, так что я знаю, что это мой сайт, который обслуживает IIS Express. У кого-нибудь есть проблемы с запуском MVC3 (я не знаю, является ли он эксклюзивным для MVC3 или нет) в IIS Express на порту 80?