Назад | Перейти на главную страницу

Как восстановить IIS, если он потерял свою конфигурацию?

Я работаю с IIS Manager 8.5 в Windows 8.1 x64. Я использую эту установку более полугода для разработки большого веб-приложения. Все было настроено на основе внутреннего пошагового руководства по настройке машин для разработки.

Внезапно моя локальная установка веб-приложения начала возвращать 503 (единственные недавние изменения, которые я внес, поскольку он все еще работал, - это несколько модификаций файлов JavaScript, поставляемых как часть веб-приложения). Пытаясь выяснить причину с помощью Отслеживание неудачных запросов модуля, в диспетчере IIS появились следующие новые проблемы:

Я мог найти applicationHost.config файл, который, кажется, содержит конфигурацию сервера. Последний раз его изменяли сегодня, и он действительно содержал pool_A. Это правильно сформированный XML-файл.

Перезагрузка машины не помогает. Перезагрузка сервера вызывает бесконечное блуждание зеленого индикатора состояния, пока, наконец, не появится сообщение об ошибке, говорящее о том, что сервис W3SVC не может быть запущен.

Как я могу приступить к отладке этой проблемы и выяснить, что именно не так?

Я мог бы решить проблему сейчас: проблема, похоже, заключалась в W3SVC сервис застрял в прекращение штат.

Глядя на эту услугу в Сервисы вкладка диспетчера задач или в Сервисы manager в панели управления, его состояние отображается как «завершается» / «завершается» («wird beendet» в моей немецкой версии Windows). Соответственно, все варианты остановки или перезапуска службы неактивны (следовательно, этот связанный ответ не помогло). Однако это состояние кажется постоянным - оно сохраняется даже после перезагрузки Windows.

Я применил этот ответ чтобы убить службу через консоль:

C:\Users\mapper>sc queryex w3svc

SERVICE_NAME: w3svc
        TYPE               : 20  WIN32_SHARE_PROCESS
        STATE              : 3  STOP_PENDING
                                (NOT_STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x161
        WAIT_HINT          : 0x4e20
        PID                : 2356
        FLAGS              :

Затем я нашел идентификатор процесса 2356 (как указано выше, в каждом случае будет отличаться) в Процессы список диспетчера задач и прекратил этот процесс.

После этого я вернулся к Сервисы список, в котором сейчас находился сервис выполняется штат. Веб-приложение можно снова открыть на моем компьютере, и диспетчер IIS прекратил сбой / зависание.

Первое, что нужно сделать, это заглянуть C:\inetpub\history\ есть x папок CFGHISTORY_0* с последними x конфигурациями IIS.

Я хотел бы узнать о некоторых ApplicationHost.config и текущий в C:\Windows\System32\inetsrv\config и посмотрим, что изменилось.

Вы можете исправить это вручную или восстановить конфиг из истории.

Вполне возможно, что ваши проблемы не имеют ничего общего с ApplicationHost.config, но я предполагаю это сначала.

Обычно, если ApplicationHost.config сформирован неправильно, диспетчер IIS сообщит вам об этом, тот факт, что он не отображает элементы и зависает, не является хорошим признаком.