Первый запрос IIS Express завершается неудачно с 503 недоступным сервисом, второй успех
Каждый раз, когда я запускаю свое приложение ASP.Net MVC 3 из Visual Studio 2010, IIS Express запускается и IE вращается в ожидании. Сбой запроса с HTTP 503 Служба недоступна. Я нажимаю кнопку Обновить в IE, и запрос выполняется успешно. Все последующие запросы выполняются до тех пор, пока я не остановлю отладку. В следующий раз, когда я начну отлаживать, первый запрос снова не будет выполнен.
Кто-нибудь еще испытывал это?
В IISExpress\applicationhost.config у меня есть:
<site name="ProjectName" id="6">
<application path="/" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="c:\users\chris\dropbox\code\2010\SolutionName\ProjectName" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:80:laptop" />
</bindings>
</site>
У меня есть это в моем файле hosts:
127.0.0.1 laptop
И мой Проект должен начинаться с IIS Express, с URL-адресом проекта:
http://laptop
Очень странно, что происходит сбой только первого запроса, возможно, как будто Visual Studio не ждет достаточно долго для запуска IIS Express? Есть ли способ заставить его ждать?
Остановка отладки, внесение изменений и повторный запуск - одна из самых распространенных задач, которые я выполняю, поэтому добавление еще одного шага для этого довольно раздражает.
2 ответа
IIS Express поддерживает отслеживание невыполненных запросов и по умолчанию включено. Логи пишутся %IIS_USER_HOME%\TraceLogFiles
который обычно находится в этом месте:
%USERPROFILE%\Documents\IISExpress\TraceLogFiles
В этой папке вы увидите список подпапок для каждого из проектов, запущенных вами в IIS Express. В папке каждого сайта должна быть куча frXXXXX.xml
файлы и freb.xsl
файл.
Используя Firefox или Internet Explorer, откройте frXXXXX.xml
файл (ы), который имеет метку времени, ближайшую к тому, когда вы получаете эти 503 ошибки. После открытия вы увидите что-то вроде следующего:
Надеюсь, вам следует выяснить причину ошибки 503.
Вы также можете попробовать запустить IIS Express для своего проекта вручную из командной строки:
C:\Program Files (x86)\IIS Express>iisexpress /path:"[PATH]" /port:16444
куда [PATH]
путь файловой системы к папке вашего проекта, содержащей код сайта, web.config и т. д., например, в вашем случае это будет:
c:\users\chris\dropbox\code\2010\SolutionName\ProjectName
Это может вызвать некоторые интересные ошибки, если IIS Express не может запустить сайт в первый раз.
Кроме того, вы также можете сказать Visual Studio "Присоединиться к процессу" и начать отладку таким образом.
Первое и главное действие, которое вам нужно предпринять, это определить, что на самом деле происходит.
Для этого включите Подробные страницы ошибок для локальных запросов:
appcmd.exe set config -section:system.webServer/httpErrors -errorMode:DetailedLocalOnly /commit:apphost
Теперь все возвраты http классов 400 и 500 приведут к тому, что IIS отобразит гораздо более подробную страницу ошибок.