본문 바로가기
개발언어/.NET

Response.End() 호출시 Thread abort exception 처리

by 공장장코난 2018. 10. 31.

사내 서비스중 Response.End() 호출시 '스레드가 중단되었습니다.' 발생한다. Web 개발에 대한 내공이 부족하여 삽질하다. Microsoft에 친절하게 설명되어 겨우 해결할 수 있었다.



Response.End() 실행시 Application_EndRequest 이벤트가 실행된다. 만약 Response.End(), Response.Redirect() 실행시 try / catch가 감싸져 있을 경우 위와 같은 exception이 발생하는데 Application_EndRequest 이벤트에 코드가 실해되지 않으려면 'HttpContext.Current.ApplicationInstance.CompleteRequest'를 대신 사용해서 해결하였다.


Response.Redirect()의 경우 두번째 인자인 endResponse를 'false'를 지정하면 해결할 수 있다.

Response.Redirect("nextpage.aspx", false);


참조:https://support.microsoft.com/ko-kr/kb/312629