>백엔드 개발 >C++ >ASP.NET에서 Response.Redirect 중에 ThreadAbortException을 방지하는 방법은 무엇입니까?

ASP.NET에서 Response.Redirect 중에 ThreadAbortException을 방지하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2025-01-20 21:29:13593검색

How to Avoid ThreadAbortException During Response.Redirect in ASP.NET?

ASP.NET 리디렉션에서 ThreadAbortException 처리

문제:

ASP.NET에서 페이지 리디렉션을 위해 Response.Redirect(...)을 사용할 때 무서운 "System.Threading.ThreadAbortException" 오류가 발생할 수 있습니다.

예외 이해:

이 예외는 Response.Redirect이 기본적으로 리디렉션 명령 이후에 코드를 계속 실행하기 때문에 발생합니다. 그러면 웹 서버가 요청을 조기에 종료하여 예외가 발생합니다.

해결책: 리디렉션 제어

이를 방지하는 가장 좋은 방법은 응답 종료를 제어할 수 있는 Response.Redirect 오버로드를 사용하는 것입니다.

<code class="language-csharp">Response.Redirect(url, false);
Context.ApplicationInstance.CompleteRequest();</code>

endResponse 매개변수를 false로 설정하면 요청이 즉시 종료되는 것을 방지할 수 있습니다. Context.ApplicationInstance.CompleteRequest() 그런 다음 EndRequest 단계로 직접 진행하도록 IIS에 명시적으로 신호를 보내 리디렉션 후 불필요한 코드 실행을 방지하여 성능을 최적화합니다.

이것이 더 좋은 이유:

단순히 Response.Redirect(url, true)을 사용하는 것이 해결책처럼 보일 수 있지만 리디렉션이 적용되기 전에 페이지의 나머지 코드가 (잠깐이라도) 계속 실행되므로 성능 문제가 발생할 수 있습니다. 위의 방법은 더 깨끗하고 효율적인 리디렉션을 제공합니다.

추가 자료:

Application_Error 핸들러 내 리디렉션과 같은 극단적인 경우 처리에 대해 자세히 알아보려면 Thomas Marquardt의 블로그와 같은 리소스를 참조하세요(사용 가능한 경우 여기에 링크가 삽입됨).

위 내용은 ASP.NET에서 Response.Redirect 중에 ThreadAbortException을 방지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.