Устранение ошибки «HTTP 500 — Внутренняя ошибка сервера» в IIS 4.0 или IIS 5.0


Всем пользователям настоятельно рекомендуется использовать службы IIS 7.0 в системе Microsoft Windows Server 2008. Службы IIS 7.0 существенно укрепляют безопасность веб-инфраструктуры. Дополнительные сведения о вопросах, связанных с безопасностью служб IIS, см. на веб-сайте корпорации Майкрософт по следующему адресу:. Дополнительные сведения о службах IIS 7.0 см. на веб-сайте корпорации Майкрософт по следующему адресу:

Аннотация


Следующее сообщение об ошибке указывает на то, что во время его возврата на веб-сервере, на котором расположен веб-узел, произошла ошибка:
HTTP 500 – Внутренняя ошибка сервера
В статье описана процедура устранения таких ошибок. Статья предназначена для администраторов веб-узлов. Подобные ошибки могут возникать по многим причинам на компьютерах различных конфигураций. Описанные в статье процедуры могут выполняться членом группы «Администраторы» на сервере.

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

При загрузке файла Localstart.asp


Если страница Iisstart.asp, по умолчанию присутствующая на веб-узле, пытается загрузить файл Localstart.asp, а пользователь, обращающийся к данной странице, не имеет прав на запуск сценария, содержащегося в файле Localstart.asp, появляется сообщение об ошибке HTTP 500. Если снять флажок Выводить подробные сообщения об ошибках http, появится сообщение об ошибке HTTP 500 следующего вида:
Тип ошибки:
Microsoft VBScript runtime (0x800A0046)
Отказ в разрешении: 'GetObject'
/localstart.asp, строка 19
Это происходит, поскольку файл Localstart.asp содержит инструкции интерфейса ADSI и код VBScript (Visual Basic Scripting Edition), которые обращаются к метабазе, используя объекты IIS Admin Objects. Из соображений безопасности доступ к метабазе разрешен только членам группы «Администраторы». Такое поведение является особенностью данного продукта.

Для решения проблемы выполните следующие действия:
  1. Нажмите кнопку Пуск, последовательно выберите пункты Программы и Администрирование, а затем выберите команду Службы IIS.
  2. В дереве консоли щелкните элемент Веб-узел по умолчанию. В области сведений щелкните правой кнопкой мыши элемент Localstart.asp и выберите пункт Свойства.
  3. На вкладке Безопасность файлов в группе Анонимный доступ и проверка подлинности нажмите кнопку Изменить.
  4. В окне Методы проверки подлинности снимите флажок Анонимный доступ.

При просмотре страницы ASP

При просмотре веб-страниц ASP появляется сообщение об ошибке «HTTP 500.100 — Внутренняя ошибка сервера — ошибка ASP». Если снять флажок Выводить подробные сообщения об ошибках http, в разделе «Технические сведения (для сотрудников службы поддержки)» появится сообщение следующего вида:
Тип ошибки:
Microsoft VBScript runtime (0x800A01F4)
Переменная не определена: 'x'
/OptionExplicitError.asp, line 9

Page:
GET /OptionExplicitError.asp
Для устранения проблемы удалите инструкцию Option Explicit или объявите соответствующую переменную с помощью ключевого слова DIM.

Чтобы воспроизвести появление данной ошибки, выполните ASP-файл, содержащий следующий код, в виртуальном каталоге, в котором разрешен запуск сценариев.
<% Option Explicit %>
<HTML>
<HEAD>
<TITLE>500-100 Необъявленная переменная</TITLE>
</HEAD>
<BODY>
<P>Будет использована необъявленная переменная</P>
<%
x = 5
%>
</B></P>
</BODY>
</HTML>
Для устранения ошибки в примере используйте для объявления переменной X ключевое слово DIM, как показано ниже.
<% Option Explicit %>
<HTML>
<HEAD>
<TITLE>500-100 Необъявленная переменная</TITLE>
</HEAD>
<BODY>
<P>Будет использована необъявленная переменная</P>
<%
DIM x
x = 5
%>
</B></P>
</BODY>
</HTML>

При появлении сообщения об ошибке служб IIS 5.0 Server.GetLastError

Если веб-приложение или веб-страница недоступны, службы IIS возвращают сообщение об ошибке. Поэтому сообщения об ошибках сценария, возникших на стороне сервера, обрабатываются настраиваемой страницей ASP. Эта страница возвращает сообщение «500 — Внутренняя ошибка сервера», в результате чего на стороне клиента приложение удаленного сценария не возвращает данные объекту удаленного сценария.

Чтобы устранить данную проблему, создайте настраиваемую страницу ошибок, возвращающую сообщение «200 OK», и укажите ссылку на эту страницу в разделе «Специальные ошибки» приложения или серверной страницы удаленного сценария. Для этого выполните следующие действия:

ПРИМЕЧАНИЕ. Данную страницу можно сопоставить с отдельными страницами, приложением, веб-узлом или веб-сервером.
  1. Создайте копию файла %SystemRoot%\Help\IISHelp\Common\500-100.asp и сохраните ее в ту же папку, что и исходный файл. Присвойте новому файлу имя 500-100-OK.asp.
  2. Нажмите кнопку Пуск и последовательно выберите пункты Программы, Стандартные и Блокнот.
  3. В программе «Блокнот» в меню Файл выберите команду Открыть. В списке Папка выберите файл 500-100-OK.asp, созданный в действии 1, и нажмите кнопку Открыть.
  4. Замените следующий код:
    Response.Status = "500 Внутренняя ошибка сервера"
    кодом:
       Response.Status = "200 OK"
    Примечание. Если сообщение об ошибке ранее не изменялось, то код для изменения содержится в строке 12.

  5. В меню Файл выберите пункт Сохранить.
  6. В дереве консоли диспетчера служб Интернета выберите имя нужного веб-сервера. Если страница ASP удаленного сценария входит в состав веб-приложения одного из веб-узлов, раскройте это веб-приложение.
  7. В области сведений щелкните правой кнопкой мыши требуемую ASP-страницу сервера удаленного сценария и выберите команду Свойства.
  8. Откройте вкладку Специальные ошибки. В списке найдите элемент, соответствующий ошибке 500;100. По умолчанию этот элемент содержит URL-адрес файла Help/Common/500-100.asp. Нажмите кнопку Изменить свойства.
  9. Измените данный элемент, указав путь к файлу /IISHelp/Common/500-100-OK.asp, нажмите кнопку ОК, а затем еще раз нажмите кнопку ОК.

При использовании файла 500-100.asp для обработки ошибок на веб-узле, не являющемся веб-узлом по умолчанию

Сообщение об ошибке HTTP 500 может появляться при использовании файла 500-100.asp для обработки ошибок на веб-узле, не являющемся веб-узлом по умолчанию.

Для решения проблемы выполните следующие действия:
  1. В дереве консоли оснастки служб IIS щелкните нужный веб-узел правой кнопкой мыши, выберите пункт Создать, а затем — Виртуальный каталог.
  2. В окне мастера создания виртуальных каталогов нажмите кнопку Далее. В поле Псевдоним введите строку IISHelp и нажмите кнопку Далее.
  3. Когда появится запрос на ввод пути к папке содержимого, нажмите кнопку Обзор, выберите папку WINNT\Help\IisHelp и нажмите кнопку Далее.
  4. На странице Права доступа оставьте для всех параметров значения по умолчанию, нажмите кнопку Далее, а затем — кнопку Готово.
  5. Щелкните нужный веб-узел правой кнопкой мыши еще раз и выберите команду Свойства.
  6. На вкладке Специальные ошибки выберите строку, соответствующую ошибке 500;100 и нажмите кнопку Изменить свойства.
  7. В списке Тип сообщения укажите в поле URL-адрес значение /iisHelp/common/500-100.asp.
  8. Нажмите кнопку ОК, а затем еще раз нажмите кнопку ОК.

При выполнении запроса на сервере индексирования

При нажатии кнопки Перейти для выполнения запроса на сервере индексирования может появиться сообщение об ошибке HTTP 500.

Это происходит, если для папки, содержащей страницы запроса, не определена точка запуска приложения по умолчанию.

Для решения проблемы выполните следующие действия:
  1. В дереве консоли оснастки служб IIS щелкните правой кнопкой мыши корень веб-узла, содержащего страницы запроса, и выберите команду Свойства.
  2. На вкладке Домашний каталог нажмите кнопку Создать.
  3. Нажмите кнопку ОК и повторите запрос.

При обращении к поставщику из кода страницы ASP

Если снять флажок Выводить подробные сообщения об ошибках http, то при обращении к поставщику из кода страницы ASP может появляться следующее сообщение об ошибке:
ADODB.Connection (0x800A0E7A) Не удается найти поставщика. Возможно, он неправильно установлен. /Nwind.asp, line 10
Это происходит, если не зарегистрирована библиотека DLL, необходимая для работы компонентов доступа к данным Windows DAC.
  1. Нажмите кнопку Пуск, выберите команду Выполнить и введите cmd.
  2. В командной строке введите cd %systemroot%:\Program Files\Common Files\System\Ole.
  3. В командной строке введите regsvr32 sqloledb.dll.
  4. После появления сообщения о том, что библиотека DLL зарегистрирована успешно, нажмите кнопку ОК.Примечание. В данном примере регистрируется библиотека Sqloledb.dll, используемая поставщиком Microsoft SQL Server OLE Provider. Поскольку названия подлежащих регистрации библиотек DLL зависят от используемого поставщика данных OLE DB , измените соответствующим образом команду, выполняемую в действии 2.

При установке удостоверения приложения COM+ на сервере IIS 5.0

При установке удостоверения приложения COM+ на сервере IIS 5.0 может появляться сообщение об ошибке HTTP 500.

Это происходит, если для удостоверения приложения COM+ или пакета сервера Microsoft Transaction Server (MTS) выбран режим Текущий (вошедший в систему) пользователь. Поскольку в текущий момент ни один пользователь не вошел в консоль служб IIS, приложение не может быть запущено.

Чтобы устранить данную ошибку, установите для удостоверения приложения COM+ или пакета MTS режим Указанный пользователь и введите имя учетной записи пользователя. Для этого выполните следующие действия:

  1. Нажмите кнопку Пуск и выберите последовательно пункты Программы, Администрирование и Службы компонентов.
  2. В дереве консоли последовательно разверните узлы Службы компонентов, Компьютеры, Мой компьютер и Приложения COM+. Выберите приложение, удостоверение которого необходимо изменить.
  3. Щелкните выбранное приложение COM+ правой кнопкой мыши и выберите команду Свойства.
  4. На вкладке Удостоверение выберите параметр Указанный пользователь, введите имя допустимой учетной записи данного компьютера и нажмите кнопку ОК.

При установке удостоверения приложения MTS на сервере IIS 4.0

При установке удостоверения приложения MTS на сервере IIS 4.0 может появляться сообщение об ошибке HTTP 500.

Для решения проблемы выполните следующие действия:
  1. В оснастке служб IIS последовательно разверните узлы Компьютеры, Мой компьютер и Microsoft Transaction Server. Выберите пакет, удостоверение которого необходимо изменить. Требуемое приложение находится в папке Packages Installed.
  2. Щелкните соответствующий пакет правой кнопкой мыши и выберите команду Свойства.
  3. На вкладке Удостоверение выберите параметр Указанный пользователь, введите имя допустимой учетной записи данного компьютера и нажмите кнопку Применить.

При запуске сервера IIS 4.0 в отдельной области памяти

Сообщение об ошибке HTTP 500 может появляться при выполнении любого из следующих условий.
  • Стандартный веб-узел служб IIS 4.0 запущен как изолированный процесс в отдельной области памяти.
  • Обозреватель Microsoft Internet Explorer использует веб-прокси на сервере Proxy Server 2.0.
  • На компьютере с BackOffice Small Business Server версии 4.5 обозреватель Internet Explorer использует прокси-сервер, и включена фильтрация пакетов на прокси-сервере.
Для решения проблемы выполните следующие действия:
  1. Нажмите кнопку Пуск, выберите в меню Программы пункт Microsoft Proxy Server, а затем — Консоль управления (MMC).
  2. В окне консоли раскройте папку Internet Information Server и раскройте объект сервера.
  3. Щелкните правой кнопкой мыши элемент Веб-узел по умолчанию и выберите пункт Свойства.
  4. Откройте вкладку Домашний каталог и в области Параметры приложения снимите флажок Запускать в отдельной области памяти.
  5. Нажмите кнопку Применить, а затем кнопку ОК.
  6. Щелкните правой кнопкой мыши элемент Веб-узел по умолчанию и выберите пункт Остановить.
  7. Щелкните правой кнопкой мыши элемент Веб-узел по умолчанию и выберите пункт Запустить.


Ссылки


Дополнительные сведения о параметре «Выводить подробные сообщения об ошибках http» см. в следующей статье базы знаний Майкрософт:

218155 Описание сообщений об ошибках протокола HTTP