Ошибка HTTP 503. Служба недоступна на простом веб-сайте ASP.NET 4.0 - PullRequest
32 голосов
/ 24 мая 2011

Что-то странное произошло на моем локальном ноутбуке: мой веб-сайт, который долго работал локально, не запускается ...

Пытаясь локализовать проблему, я создал простой веб-сайт только с файлом index.html. Он хорошо работает под ASP.NET 2.0, но когда я переключил App Pool на 4.0, он перестал работать.

Когда я открываю веб-сайт в браузере, он показывает следующую ошибку:

Сервис недоступен

Ошибка HTTP 503. Служба недоступна.

И заставляет пул приложений также прекращать работу ... В журнале системных событий в разделе «Приложения» у меня есть:

Рабочий процесс не удалось правильно инициализировать и поэтому не может быть запущен. Данные являются ошибкой.

Пожалуйста, сообщите. Не могу найти ничего связанного в Google ...: (

P.S. У меня VS2010, Windows Vista x64, установлены последние обновления, VS SP1 также установлен ...

Ответы [ 10 ]

49 голосов
/ 14 января 2013

Мне пришлось запустить пул приложений, который был настроен для моего сайта и автоматически остановился из-за какой-то ошибки. (IIS (7.5 in my case)->Application Pools->Start stopped application pool.)

4 голосов
/ 24 мая 2011

Я переустановил .NET 64 - это помогло.

PS

Похоже, что некоторые файлы в "C: /windows/Microsoft.net/Framework64/v4.0.30319/«папку или я удалил их сам (VS иногда жалуется на файлы в« Временные файлы ASP.NET »и их удаление помогает) ... Возможно, я не обратил внимание, что эти папки не временные ...

PPS

В этом случае, почему VS пожаловался на файлы в папке "C: /windows/Microsoft.net/Framework64/v4.0.30319/" ... хорошо, теперь трудно сказать.

3 голосов
/ 24 мая 2011

Похоже, вы забыли включить расширение .Net 4 на IIS.Попробуйте найти и включить его в ISAPI и CGI. Ограничения

http://blogs.msdn.com/b/rakkimk/archive/2007/08/17/iis7-where-is-the-web-services-extensions-option-which-was-there-in-iis6.aspx

Исходя из комментария, возможно, что часть инфраструктуры была удалена, и в этом случае было бы целесообразно переустановить Framework4, сначала очистив его.Попробуйте этот пост в блоге, в котором есть ссылка на инструмент, который автоматизирует процесс очистки http://blogs.msdn.com/b/astebner/archive/2008/08/28/8904493.aspx

2 голосов
/ 24 мая 2011

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

Если вы создаете новое приложение в диспетчере IIS, по умолчанию оно создает новый пул приложений.с тем же именем.Проблема заключается в том, что этот пул работает под новым именем с именем IIS APPPOOL\<i>yourSiteName</i> (на странице «Пулы приложений» он обычно указан как ApplicationPoolIdentity).

Этот идентификатор не существует, пока не создан пул, поэтомупапка в настоящее время не предоставляет доступ на чтение, а затем рабочий процесс завершается сбоем, так как он не имеет доступа.

Если вы хотите использовать эту идентификацию, вы можете использовать пункт Edit Permissions в контекстном меню сайта и получить доступ к безопасности.откройте вкладку, отредактируйте элемент папки Security напрямую через проводник или используйте такие инструменты, как icacls.exe из командной строки (рекомендуется для повторяемости).

Вы также можете изменить идентификатор пула на Network Service иликонкретный пользователь.Я бы настоятельно не рекомендовал использовать Local System, поскольку он предоставляет слишком много разрешений, а Local Service имеет другие ограничения.

ПРИМЕЧАНИЕ. Если вы собираетесь добавить ApplicationPoolIdentity в диалоге безопасности, то IIS APPPOOL учетные записи не отображаются, если вы используете параметры Advanced / Find.Вы должны вручную ввести всю строку "IIS APPPOOL\<i>yourSiteName</i>", а затем нажать кнопку Check Names для подтверждения - если она действительна, диалог заменяет ваш текст просто yourAppName, подчеркнутым.

2 голосов
/ 24 мая 2011

Между ASP.NET 2.0 и 4.0 имеются незначительные изменения в отношении запуска приложения.Например, вы не можете получить доступ к объекту HttpContext во время события Application_Start в ASP.NET 4.0.Есть ли у вас какой-либо код, который может скрыть возникновение исключения из-за этого?

Есть несколько проблем, которые могут привести к остановке AppPool.Я столкнулся с тем, что любое необработанное исключение в потоке, отличном от рабочего потока запроса, в конечном итоге приведет к остановке AppPool.Это не насущная проблема, но в конце концов она прекратится.Среда выполнения ASP.NET отслеживает частоту сбоев вашего приложения, и, если оно выходит за пределы этого порога, AppPool останавливается, а вместе с ним и любые приложения, разделяющие этот пул.StackOverflowException или OutOfMemoryException в конечном итоге будут иметь тот же эффект, это критические ошибки и не должно происходить в вашем повседневном рабочем коде.

Я бы рассмотрел изменения между ASP.NET 2.0 и4.0 и ищите необработанные исключения.Вы также можете изменить способ обработки исключений в Visual Studio (см. «Отладка»> «Исключения») и прерывать их при возникновении независимо от того, обрабатываются они или нет, это быстрый, но очень подробный способ поиска любых исключений.

1 голос
/ 29 апреля 2014

Я думаю, что в этом случае, если вы идете в пулы приложений под вашей IIS. Ищите пул приложений, в котором вы запускаете свой веб-сайт. Я уверен, что он остановлен, поэтому просто перезапустите его, и вам будет хорошо идти.

1 голос
/ 08 января 2013

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

1 голос
/ 26 декабря 2011

Мне пришлось обновить свои сетевые учетные данные и не обновил «PhysicalPathCredential» для приложения под IIS.Это исправлено.

1 голос
/ 22 августа 2011

Перейдите в IIS и измените пул приложений на DefaultAppPool для вашего веб-приложения.

0 голосов
/ 02 мая 2014

do aspnet-iisreg -i, и это решит вашу ошибку.

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