При доступе к странице ASP отображается сообщение об ошибке объекта ответа ASP 0156: 80004005 Ошибка заголовка HTTP?, строка 0 выводит заголовок HTTP в клиентский браузер. Любые изменения в заголовках HTTP необходимо вносить до вывода содержимого страницы.
На самом деле, проблема такого рода связана с проблемами кэширования. Для ее решения можно воспользоваться следующими методами:
Некоторые страницы ASP будут иметь ошибку объекта ответа «ASP 0156: 80004005» и ошибку заголовка HTTP при первом открытии, но после обновления они снова станут нормальными. Решение заключается в следующем.
Скопируйте код кода следующим образом:
Response.Buffer = Истина
'Это должна быть вот эта строка, ничего страшного, если вы ее удалите
«Если это не сработает, просто
Response.Buffer = Истина
Response.ExpiresAbsolute = Сейчас() - 1
Ответ.Истекает = 0
Response.CacheControl = "без кэша"
Response.AddHeader «Прагма», «Без кэша»
«Удалите их все. Это используется для того, чтобы не кэшировать страницу. Удаление не должно повлиять на веб-сайт.
Эта ошибка возникает, поскольку веб-сервер использует заголовок HTTP для настройки клиентского браузера. Затем веб-сервер пытается сбросить настройки браузера клиента, используя дополнительные заголовки HTTP (например, когда заголовок HTTP выдается после того, как браузер устанавливает тип содержимого = text/html). Примером может служить обработка страницы ASP перед включением тега HTML или любого другого оператора Response.Redirect сценария на стороне сервера.
Примечание. Это также может произойти при обновлении компьютера под управлением Microsoft Windows NT 4.0 до Microsoft Windows Server 2003.
Примером может служить обработка страницы ASP перед включением тега HTML или любого другого оператора Response.Redirect сценария на стороне сервера.
Следующие свойства и методы ASP для объекта Response записывают заголовки HTTP:
Response.AddHeader
Response.CacheControl
Response.CharSet
Response.ContentType
Ответ.Истекает
Response.ExpiresAbsolute
Ответ.Перенаправление
Ответ.Статус
Вернуться наверх
решение
Чтобы решить эту проблему, перед отправкой вывода HTML установите заголовки HTTP, такие как оператор перенаправления или информацию о файлах cookie.
Например, чтобы избежать этой ошибки при перенаправлении, ограничьте обработку буфера или страницы ASP, а затем выполните перенаправление после обработки. Есть два способа выполнить буферизацию: на уровне страницы или на уровне приложения.
Обратите внимание, что все сценарии ASP выполняются после перенаправления. Если страница ASP перенаправляется до того, как она будет выдана сценарию ASP, код ASP не обрабатывается.
Когда они обрабатываются на уровне приложения, все страницы ASP в веб-приложении буферизуются. Чтобы настроить буферизацию на уровне приложения, выполните следующие действия: 1. В консоли управления Microsoft (MMC) найдите веб-сайт, на котором находится веб-приложение.
2. Нажмите, чтобы развернуть веб-сайт для отображения виртуального каталога и веб-приложения.
3. Щелкните веб-приложение правой кнопкой мыши и выберите «Свойства».
4. На вкладке «Виртуальный каталог» нажмите «Настроить».
Обратите внимание: если кнопка «Настроить» недоступна, виртуальный каталог не является веб-приложением. Нажмите «Создать», чтобы создать виртуальный каталог для веб-приложения.
5. В диалоговом окне ApplicationConfiguration@@ на вкладке Параметры приложения нажмите Включить буферизацию.
Чтобы установить уровень страницы для буферизации, добавьте код после строки @LANGUAGE на странице ASP, как показано ниже:
<% @LANGUAGE = "VBScript" %><% Response.Buffer = True %>Другие сценарии ASP/клиентской стороны или HTML ...<% Response.Redirect %>Как показано в следующей демонстрации кода, файлы cookie могут быть установлены на странице уровень, в буфере. Этот фрагмент кода записывает файл cookie перед отправкой тега <HTML> (элемента).
Response.Cookies("Name")=value<HTML>...content...</HTML>
Если вы используете небольшой вихрь, в нем отсутствуют компоненты.