ASP 페이지에 액세스할 때 응답 개체 오류 ASP 0156: 80004005 HTTP 헤더 오류?라는 메시지가 표시됩니다. 라인 0에는 클라이언트 브라우저에 HTTP 헤더가 출력되었습니다. 페이지 콘텐츠를 출력하기 전에 HTTP 헤더를 수정해야 합니다. 실제로 이런 종류의 문제는 캐싱 문제로 인해 발생하며 다음 방법을 참조하여 해결할 수 있습니다.
일부 ASP 페이지를 처음 열면 응답 개체 오류 'ASP 0156:80004005'와 HTTP 헤더 오류가 발생하지만 새로 고침 후에는 다시 정상으로 돌아옵니다. 해결 방법은 다음과 같습니다.
다음과 같이 코드 코드를 복사합니다.
응답.버퍼 = 참
'이 줄이어야 하는데, 빼면 괜찮을 것 같아요.
'그래도 안되면 그냥
응답.버퍼 = 참
Response.ExpiresAbsolute = 지금() - 1
응답.만료 = 0
Response.CacheControl = 캐시 없음
Response.AddHeader Pragma, 캐시 없음
'모두 제거하세요. 페이지를 캐시하지 않는 데 사용됩니다. 이를 제거해도 웹사이트에는 영향이 없습니다.
이 오류는 웹 서버가 HTTP 헤더를 사용하여 클라이언트 브라우저를 설정하기 때문에 발생합니다. 그런 다음 웹 서버는 추가 HTTP 헤더를 사용하여 클라이언트 브라우저를 재설정하려고 시도합니다(예: 브라우저가 content-type = text/html로 설정한 후 HTTP 헤더가 발행되는 경우). HTML 태그나 다른 서버측 스크립트 Response.Redirect 문을 포함하기 전에 ASP 페이지를 처리하는 경우를 예로 들 수 있습니다.
참고 Microsoft Windows NT 4.0을 실행하는 컴퓨터를 Microsoft Windows Server 2003으로 업그레이드하는 경우에도 이 문제가 발생할 수 있습니다.
HTML 태그나 다른 서버측 스크립트 Response.Redirect 문을 포함하기 전에 ASP 페이지를 처리하는 경우를 예로 들 수 있습니다.
Response 개체에 대한 ASP의 다음 속성과 메서드는 HTTP 헤더를 작성합니다.
응답.AddHeader
응답.캐시컨트롤
응답.CharSet
응답.콘텐츠 유형
응답.만료
응답.ExpiresAbsolute
응답.리디렉션
응답.상태
맨 위로 돌아가기
해결책
이 문제를 해결하려면 HTML 출력을 보내기 전에 리디렉션 문이나 쿠키 정보와 같은 HTTP 헤더를 설정하십시오.
예를 들어 리디렉션 시 이 오류를 방지하려면 버퍼 또는 ASP 페이지의 처리를 제한한 다음 처리 후 리디렉션을 실행하세요. 버퍼링을 수행하는 방법에는 페이지 수준 또는 응용 프로그램 수준의 두 가지가 있습니다.
모든 ASP 스크립트는 리디렉션 후에 실행됩니다. ASP 페이지가 ASP 스크립트로 실행되기 전에 리디렉션되면 ASP 코드가 처리되지 않습니다.
응용 프로그램 수준에서 처리되면 웹 응용 프로그램의 모든 ASP 페이지가 버퍼링됩니다. 응용 프로그램 수준에서 버퍼링을 설정하려면 다음 단계를 수행하십시오. 1. MMC(Microsoft Management Console)에서 웹 응용 프로그램이 있는 웹 사이트를 찾습니다.
2. 클릭하여 웹사이트를 확장하면 가상 디렉터리와 웹 애플리케이션이 표시됩니다.
3. 웹 응용 프로그램을 마우스 오른쪽 버튼으로 클릭한 다음 속성을 클릭합니다.
4. 가상 디렉터리 탭에서 구성을 클릭합니다.
구성 단추를 사용할 수 없으면 가상 디렉터리는 웹 응용 프로그램이 아닙니다. 만들기를 클릭하여 웹 응용 프로그램에 대한 가상 디렉터리를 만듭니다.
5. ApplicationConfiguration@@ 대화 상자의 앱 옵션 탭에서 버퍼링 활성화를 클릭합니다.
버퍼링을 위한 페이지 수준을 설정하려면 아래와 같이 ASP 페이지의 @LANGUAGE 줄 뒤에 코드를 추가합니다.
<% @LANGUAGE = VBScript %><% Response.Buffer = True %>기타 ASP/클라이언트측 스크립트 또는 HTML ...<% Response.Redirect %>다음 코드에서 볼 수 있듯이 쿠키는 페이지 수준에서도 설정할 수 있습니다. 버퍼링. 이 코드 조각은 <HTML> 태그(요소)를 보내기 전에 쿠키를 작성합니다.
Response.Cookies(이름)=value<HTML>...콘텐츠...</HTML>
작은 회오리바람을 사용하는 경우 구성 요소가 누락됩니다.