System.Threading.ThreadAbortException 및 Response.Redirect: 실용 가이드
Response.Redirect()
을 사용하여 웹페이지를 리디렉션하면 때때로 System.Threading.ThreadAbortException
이 실행될 수 있습니다. 이는 리디렉션을 시작한 후 서버가 현재 페이지의 나머지 코드 처리를 중지하기 때문에 발생합니다.
endResponse
에서 false
을 Response.Redirect(url, false)
으로 설정하면 이러한 예외를 방지할 수 있지만 서버가 원본 페이지를 계속 처리하므로 불필요한 리소스 소비가 발생할 수 있습니다.
권장 접근 방식
가장 효율적인 솔루션은 Response.Redirect(url, false)
와 Context.ApplicationInstance.CompleteRequest()
을 결합한 것입니다. 이렇게 하면 원본 페이지에서 추가 코드를 실행하지 않고도 깔끔한 리디렉션이 보장됩니다.
<code class="language-csharp">Response.Redirect(url, false); Context.ApplicationInstance.CompleteRequest();</code>
이 방법은 IIS에 EndRequest
단계로 이동하라는 신호를 명확하게 보내 원본 페이지 처리를 효과적으로 종료합니다.
Application_Error
핸들러 내에서 리디렉션을 처리하는 모범 사례를 포함하여 이 주제에 대해 자세히 알아보려면 Thomas Marquardt의 자세한 블로그 게시물을 참조하세요(사용 가능한 경우 링크 제공).
위 내용은 Response.Redirect 및 ThreadAbortException: 이를 적절하게 방지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!