10
내 직원 페이지에 Response.Redirect
이 있습니다. 샐러리 페이지로 리디렉션됩니다."EndResponse"가 ASP.Net 페이지의 성능을 향상시킬 수 있습니까?
Response.Redirect ("Salary.aspx");
다음과 같이 예외 처리를 추가 할 때까지 제대로 작동했습니다. ..
try
{
Response.Redirect ("Salary.aspx");
}
catch(Exception ex)
{
//MyLog();
throw new Exception();
}
//Remaining code in event handler
이
는 "스레드가 중단되었습니다"라는 새로운 예외를 발생 나는이 리디렉션에 대한 거짓endResponse
를 설정하여 방지 할 수 있다는 것을 알게 된 새로운 예외의
Response.Redirect(url, false);
Context.ApplicationInstance.CompleteRequest();
설명 : 그것은 항상 예외를 throw하지만 프레임 워크에 의해 처리되었습니다. try..catch를 추가 한 이후로 잡았습니다 (새로운 예외가 발생했습니다).
참고 : CompleteRequest
은 HTTP 필터와 모듈을 추가로 무시하지만 doesn 'bypa 현재 페이지 수명주기의 추가 이벤트
참고 : Response.Redirect는 현재 페이지의 처리를 끝내기 위해이 예외를 throw합니다. ASP .Net 자체가이 예외를 처리하고 처리를 계속하려면 ResetAbort
을 호출합니다.
질문 "거짓 endResponse 설정"
- 여부는 예외 이후 증가 성능은 슬로우되지 않는 수 있습니까?
- 페이지 라이프 사이클 이벤트가 종료되지 않았기 때문에 "endResponse를 false로 설정"할 수 있습니까? 성능이 감소합니까?
- 당신이 이벤트 핸들러에 코드를 나머지,
false
으로 endResponse을 설정하면
함정이 실행됩니다. 따라서
if
에서 나머지 코드를 확인해야합니다 (리디렉션 기준이 충족되지 않았는지 확인). 응답 (Response.Redirect(url)
또는Response.Redirect(url, true)
를) 종료 - 당신이 이벤트 핸들러에 코드를 나머지,
는 참조
- Why Response.Redirect causes System.Threading.ThreadAbortException?
- ASP.NET exception "Thread was being aborted" causes method to exit
'성능'은 다양한 측면에서 측정 할 수 있습니다! 너 정확히 뭘 기대하는거야? –
@huMptyduMpty 다음과 같은 관점에서의 성능 1) 페이지 응답 시간 2) 메모리 사용량 – Lijo
또한 웹 사이트 성능을 향상시키기 위해이 기사 [http://msdn.microsoft.com/en-us/magazine/cc163854 .aspx)도 몇 가지 정보를 줄 수 있습니다. –