IIS7 (통합 모드)에서 오류 렌더링에 대한 완전한 프로그래밍 방식 제어를 시도하는 데 어려움을 겪고 있습니다. 내가하고 싶은 일은 오류 (페이지를 찾을 수 없거나, 내부 서버 오류, 인증되지 않음 등)가 주어지고, 요청을 전체 HTTP 상태 코드와 함께 사용자 지정 ASPX 또는 HTML (선호하는 경우)로 전송합니다.IIS7 및 HTTP 상태 코드 처리
내가 원하는 것은 IIS7이 HTTP 상태 코드를 설정하는 것에 대해 허황하지 않는다는 것입니다. 오류 처리를 원하지 않습니다. Response.StatusCode = (int)HttpStatusCode.NotFound
을 설정하면 IIS가 자체 오류 페이지를 렌더링하지 않지만 요청을 다른 파일로 전송할 수 있습니다.
나는 일이 정적 구성 물건을 입수 한이 작동하는 동안
<configuration>
<system.webServer>
<httpErrors>
<clear />
<error statusCode="404" path="/errors/404.html" responseMode="ExecuteURL" />
</httpErrors>
</system.webServer>
</configuration>
, 그것은 나에게 오류 시나리오 주어진 응답과 함께 무엇을해야하는지 프로그램 적 제어를 제공하지 않습니다. 구성은 좋은 대안이지만, 실제로는 을 설정하고 404.html
과 완전히 다른 것을 렌더링하고 싶습니다 (예 : Accept: application/json
을받는 경우 JSON 응답). 그러나 IIS7은 허용하지 않습니다. 기회가 아닙니다.
그럼 도대체 내가 무엇을해야할까요? HttpResponse.TrySkipIisCustomErrors Property
을 설정하려고 시도했지만 거대한 해킹처럼 보이고 일관되게 작동하지 않는 것 같습니다. 내가 원하는 동작을 얻으려면이 속성을 true로 설정하는 것이 실제로 권장되는 최상의 방법입니까?
현재 IIS7에 대한 격렬한 증오는 내가 떠난 느낌입니다. 누구나 내가 바보가되고 실제로 HTTP 스택을 완전히 제어 할 수 있음을 증명함으로써이 문제를 해결할 수 있습니까?
당신이 봤어 설정해야합니까? – sanpaco