[문제사항]
“Bad Request (Invalid Header Name)”
또한 WebAgent로 호출된 부분이 정상적으로 처리가 안되고 빨간색(Not Found)와 같은 형태로 나타남. è URL을 copy하여 브라우저에서 실행을 하면 WebAgent(wa_isapi.dl)정상적으로 인식이 된다.
이로 볼 때 IIS6.0(Windows 2003 Server)에서 에러를 발생 시킨 것으로 보인다. 이를 검색 사이트에서 검색해본 결과 하단의 참고자료를 얻을 수 있었다.
해결방법 :
Windows 2003 Server를 인스톨하고 보안 Update및 추가 Update를 하지 않은 상태여서 이를 Update하고 다시 테스트 하도록 유도함.
하단의 http://support.microsoft.com/kb/828726 hotfix를 참고하십시요.
참고자료 :
http://www.derkeiler.com/Newsgroups/microsoft.public.inetserver.iis.security/2004-03/0437.html
Re: Web Site is down! after upgrade
From: Desmond Lam (deslam_at_online.microsoft.com)
Date: 03/17/04
· Next message: Desmond Lam: "Re: HTTP 401.2 - Unauthorized: Logon failed due to..."
· Previous message: Desmond Lam: "Re: SSL & "All Unassigned""
· In reply to: Ari: "Web Site is down! after upgrade"
· Messages sorted by: [ date ] [ thread ] [ subject ] [ author ] [ attachment ]
Date: Wed, 17 Mar 2004 12:07:51 +0800
By default IIS 6.0 only serves statics HTML pages. If you are just serving
out static pages, there should not be any problem with IIS 6. If you are
running custom apps like ASP/CGI etc, you may need to specifically enable
the options to run them . Otherwise, try setting IIS6.0 to run in IIS 5
isolation mode and see if it resolves the issue. If it does, the problem is
probably related to the architecuture change in IIIS6.0 (http.sys and worker
process concept)
Some Additional Information for your reference when using IIS 6.0 Worker
Process Mode:
1. In Microsoft Internet Information Services (IIS) 6.0, when a request
contains a header name that includes a question mark (?) character or
another separator character, Http.sys rejects the request and sends the
following error message to the requestor:
Bad Request (Invalid Header Name).
Additionally, when you use lowercase HTTP verbs like "get," Http.sys rejects
the request and sends the following error message to the requestor:
"Bad Request (Invalid Verb)".
Refer to the KB for resolution/workaround:
FIX: Http.sys Rejects Requests That Contain Separator Characters
http://support.microsoft.com/?id=828726
2. KB: Information about ISAPI filters with SF_NOTIFY_READ_RAW_DATA in IIS
6.0
http://support.microsoft.com/?id=311852
3. Error Message: HTTP/1.1 Error 400 - Bad Request
http://support.microsoft.com/?id=247249
Hope it helps
Desmond
"Ari" <anonymous@discussions.microsoft.com> wrote in message
news:CE39512A-B07C-4D64-8A03-E03D2A6BD28A@microsoft.com...
> After upgrading to windows 2003 server when a user access our site they
get the following error
> The page cannot be found HTTP 400 - Bad Request
> I've check everything on the server including anonymous access,
permissions, can't figure it out!
>
> Any help is greatly appreciated
첨부자료 :
[참고문서]
http://support.microsoft.com/kb/828726
FIX: Http.sys에서 구분 문자가 포함된 요청을 거부한다
기술 자료 ID |
: |
828726 |
마지막 검토 |
: |
2006년 3월 29일 수요일 |
수정 |
: |
3.5 |
중요 이 문서에서는 레지스트리 수정 방법을 설명합니다. 레지스트리를 수정하기 전에 해당 레지스트리를 백업하고 문제 발생 시 이를 복원하는 방법을 이해해야 합니다. 레지스트리 백업, 복원 및 편집 방법은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
256986 (http://support.microsoft.com/kb/256986/) Microsoft Windows 레지스트리 설명
이 페이지에서
현상
Microsoft 인터넷 정보 서비스(IIS) 6.0에서 요청에 물음표(?) 또는 다른 구분 문자를 포함하는 헤더 이름이 들어 있으면 Http.sys는 요청을 거부하고 다음과 같은 오류 메시지를 요청자에게 보냅니다.
잘못된 요청(잘못된 헤더 이름입니다.)
또한 "get"과 같은 소문자 HTTP 동사를 사용할 경우 Http.sys는 요청을 거부하고 다음과 같은 오류 메시지를 요청자에게 보냅니다.
"잘못된 요청(잘못된 동사입니다.)"
원인
이 문제는 HTTP 사양에서 헤더에 구분 문자가 포함된 HTTP 요청은 유효하지 않다고 지정하고 있기 때문에 발생합니다. 또한 HTTP 사양에서는 HTTP 동사가 대/소문자를 구분한다고 지정하고 있습니다.
해결 방법
핫픽스 정보
현재 지원되는 핫픽스를 Microsoft에서 구할 수 있지만 이 문서에서 설명하는 문제를 해결하기 위한 것일 뿐이므로 이러한 특정 문제가 발생하는 시스템에만 이 프로그램을 적용해야 합니다. 이 핫픽스는 나중에 추가 테스트를 받아야 할 수도 있습니다. 따라서 이 문제의 영향이 심각하지 않으면 이 핫픽스가 포함된 다음 Microsoft Windows Server 2003 서비스 팩이 나올 때까지 기다리는 것이 좋습니다.
이 문제를 즉시 해결하려면 Microsoft 고객기술지원부에 문의하여 핫픽스를 구하십시오. Microsoft 고객기술지원부 전화 번호의 전체 목록과 지원 비용에 대한 정보는 다음 Microsoft 웹 사이트를 참조하십시오.
기술지원 서비스 안내 (http://support.microsoft.com/default.aspx?scid=fh;ko;serviceoverview)
참고 특정 업데이트로 문제를 해결할 수 있다고 Microsoft 기술 지원 전문가가 판단할 경우 지원 요청에 따른 일반적 비용이 취소될 수도 있습니다. 특정 업데이트가 필요하지 않은 추가 지원 질문과 문제에는 일반 지원 비용이 적용됩니다.
전제 조건
전제 조건이 없습니다.
다시 시작 요구 사항
이 핫픽스를 적용한 후에는 컴퓨터를 다시 시작해야 합니다.
핫픽스 대체 정보
이 핫픽스는 다른 핫픽스를 대체하지 않습니다.
파일 정보
이 핫픽스의 영어 버전은 아래와 같거나 그 이상의 파일 특성을 갖고 있습니다. 이 파일의 날짜와 시간은 UTC(Coordinated Universal Time)로 나열되며 파일 정보를 볼 때 로컬 시간으로 변환됩니다. UTC와 로컬 시간의 차이를 알려면 제어판의 날짜 및 시간 도구에서 표준 시간대 탭을 사용하십시오.
날짜 |
시간 |
버전 |
크기 |
파일 이름 |
2003-09-25 |
22:35 |
5.2.3790.89 |
334,336 |
Http.sys |
2003-09-25 |
23:59 |
5.2.3790.89 |
27,648 |
Httpapi.dll |
현재 상태
Microsoft는 "본 문서의 정보는 다음의 제품에 적용됩니다." 절에 나열한 제품에서 이 문제를 확인했습니다.
추가 정보
경고 레지스트리 편집기를 잘못 사용하면 심각한 문제가 발생할 수 있으며 문제를 해결하기 위해 운영 체제를 다시 설치해야 할 수도 있습니다. Microsoft는 레지스트리 편집기를 잘못 사용함으로써 발생하는 문제에 대해 해결을 보증하지 않습니다. 레지스트리 편집기의 사용에 따른 모든 책임은 사용자에게 있습니다.
일부 클라이언트는 HTTP 사양을 엄격하게 따르지 않기 때문에 이 핫픽스를 설치하고 다음 레지스트리 키를 설정하면 이러한 제약 사항이 완화될 수 있습니다.
HTTP 헤더에서 구분 문자 허용
다음과 같이 한 다음 레지스트리 편집기를 종료하십시오.
1. |
시작, 실행을 차례로 누르고 regedit를 입력한 다음 확인을 누릅니다. |
2. |
레지스트리에서 다음 키를 찾아 누릅니다. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters |
3. |
편집 메뉴에서 새로 만들기를 가리킨 다음 DWORD 값을 누릅니다. |
4. |
AllowWeakHeaderNameSyntax를 입력한 다음 Enter 키를 누릅니다. |
5. |
편집 메뉴에서 수정을 누릅니다. |
6. |
1을 입력한 다음 확인을 누릅니다. |
참고 이 변경 내용을 적용하려면 컴퓨터를 다시 시작해야 합니다.
대/소문자를 구분하지 않는 HTTP 동사 허용
다음과 같이 한 다음 레지스트리 편집기를 종료하십시오.
1. |
시작, 실행을 차례로 누르고 regedit를 입력한 다음 확인을 누릅니다. |
2. |
레지스트리에서 다음 키를 찾아 누릅니다. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters |
3. |
편집 메뉴에서 새로 만들기를 가리킨 다음 DWORD 값을 누릅니다. |
4. |
AllowCaseInsensitiveVerbs를 입력한 다음 Enter 키를 누릅니다. |
5. |
편집 메뉴에서 수정을 누릅니다. |
6. |
1을 입력한 다음 확인을 누릅니다. |
참고 이 변경 내용을 적용하려면 컴퓨터를 다시 시작해야 합니다.
댓글 없음:
댓글 쓰기