1 년 전 IIS6에서 작업하기위한 웹 응용 프로그램을 개발했습니다. 이제 우리는 IIS7로 이동하고 있으며, 일부 통합 테스트를 수행 할 것이라고 생각했습니다.IIS7 및 2008 Server에서 CodeBehind에서 ResponseCode를 수동으로 설정하지 못했습니다.
다음 중 하나가 실패합니다.
웹 앱은 검색 결과가 없거나 데이터 기반 애플리케이션이 없을 때 404 또는 500 (Google Advisor 덕분에 ...) 컨테이너가 아직로드되지 않았습니다. IIS6에서이 작업은 훌륭했습니다. 예를 들어 페이지 출력이있었습니다. result.aspx, 일부 메시지 표시 및 지정된 http 상태 반환 (codebehind에서 설정).
IIS7의 경우이 동작이 잘못되었습니다. 코드 비헤이비어에서 http 상태 코드를 설정하면 내 페이지가 더 이상 전달되지 않고 대신 IIS7의 일반 오류 페이지가 표시됩니다.
아니요, customErrors-Section ...으로 더러운 해킹을하고 싶지 않습니다. 방금 원래 동작을 다시 원합니다!
이렇게 할 방법이 있습니까?
편집 :
페이지 다음 고려
<%@ Page Language="C#" AutoEventWireup="true"%>
<script runat="server">
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
this.Response.StatusCode = 404;
}
</script>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
This page should be displayed
</div>
</form>
</body>
</html>
비스타 + IIS7 = OK
2008 서버 + IIS7 = 일반 오류 페이지
hehe ... nope - not yet ... 나는 그것을 내일 시도 할 것이다! –
은 매력처럼 작동합니다! –