2009-09-24 4 views
14

설정 Response.StatusCode = 404은 IE8이나 Chrome에서도 콘텐츠를 제공하지 않습니까? 내가 이상하다고 생각하지만 모질라에서 작동합니다!ASP.NET 응용 프로그램에서 프로그래밍 방식으로 Response.StatusCode를 200 OK 이외로 설정하고 클라이언트에 계속 콘텐츠를 제공하는 방법은 무엇입니까?

비어있는 asp.net 웹 응용 프로그램 프로젝트에서 빈 Default.aspx 페이지가 가장 단순합니다. Page_Load 이벤트에서 다음을 사용하십시오.

protected void Page_Load(object sender, EventArgs e) 
{ 
    Response.StatusCode = 404; 
} 

이것은 효과적으로 현재 요청의 상태 코드를 404로 설정합니다. 의심의 여지가 없습니다. IE8 또는 Chrome에서 렌더링 할 때 또는 일부 다른 브라우저 일 수도 있습니다. 테스트하지 않았으므로 실제 페이지가 전혀 표시되지 않습니다. 이 브라우저는 기본 404 오류 페이지 (기본 IIS 사용자 정의 오류 아님)를 표시합니다. IE8의 예 : -에뿐만 아니라

The webpage cannot be found 
HTTP 404 
    Most likely causes: 
•There might be a typing error in the address. 
•If you clicked on a link, it may be out of date. ... and so on ... 

내가 정말 생각하고 싶지 실제로 브라우저 또는 크롤러 또는이 페이지가 존재하지 않음을 누구에게 말할 것이다 (404) 오류 코드 404 오류 페이지를 제공하는 것입니다 상태 메시지 200 OK를 포함한 멋진 사용자 정의 오류 메시지를 보여줍니다.

피들러를 사용하면 실제로 요청을 처리하고 있지만 브라우저가이를 완전히 무시하고 있음을 보여줍니다.

내 질문 - 어떻게 404 상태 코드를 설정하고 페이지 콘텐츠를 렌더링 할 수 있습니까? 예 - http://www.intel.com/invalidpage.wow. 피들러를 사용하면이 페이지가 404 상태 코드와 함께 제공됨을 알 수 있습니다.

답변

10

는 IE는 사용자의 표시됩니다 오류에 대한 응답이 구성 가능한 양보다 적 으면 오류 페이지. 나는 그 양이 512 바이트라고 생각하지만 이것에 대한 몇 가지 확인을 찾으려고 노력할 것이다. 따라서 귀하가해야 할 일은 응답에 더 많은 내용을 넣는 것입니다.

편집 : This 블로그 게시물은 제한을 설명합니다. 주석 중 하나는이 값을 변경하기위한 레지스트리 키 설정을 보여줍니다. 핵심은 다음과 같습니다 마이크로 소프트 \ Internet Explorer를 \ MAIN \ ErrorThresholds

+2

자세히 알아보기 : http://weblogs.asp.net/scottgu/archive/2006/04/09/App_5F00_Offline.htm-and-working-around-the-_2200_IE-Friendly-Errors_2200_-feature.aspx –

+0

큰 도움 ! 내가 이해하려고했던 바로 그 물건. 감사. –

+1

@JonGalloway 링크가 깨졌습니다. 대신 [this] (http://goo.gl/RYrEr)을 사용해보세요. SE 엔진이 시도하는 'http : // weblogs.asp.net/scottgu/archive/2006/04/09/App_5F00_Offline.htm-_2200_IE-Friendly-Errors_2200_-feature.aspx'를 읽습니다. 이탤릭체로 넣어서 해결 방법으로 단축키를 사용했습니다. – mbx

0

당신은 콘텐츠를 제공하지 않습니다, 당신은 웹 서버 수준에서 사용자 지정 오류 페이지 (IIS) 또는 asp.net의 경우의 Web.config에서 설정 기본적으로

+2

\

HKEY_LOCAL_MACHINE \ 소프트웨어 나는 동의하지 않는다. 상황을 모르는 경우 일반적으로 이런 말을하지 마십시오. 런타임에 URL이 생성되고 오류 페이지가 실제로 가상 인 라우팅 상황에서는 IIS가 어디에 있는지 모를 때 IIS에서 설정을 할 수 없습니다. 그리고 하나 더, 오류 페이지 404 오류에 응답하도록 IIS를 설정하면 404 상태 코드에서 오류를 제공하지 않습니다. 그리고 당신의 반응은 제가 물었던 것에 전혀 무관합니다! –

관련 문제