programing

Response.redirect에서 "스레드가 중단되었습니다."를 발생시킵니다.

powerit 2023. 6. 2. 21:23
반응형

Response.redirect에서 "스레드가 중단되었습니다."를 발생시킵니다.

DB에서 개체를 삭제해야 할 때 VB.NET 코드를 호출했습니다.Page_load에서 수동 새로 고침을 방지하기 위해 포스트백이 아닌지 확인하고 개체 삭제 후 Response.redirect를 사용하여 호출자 페이지로 리디렉션합니다.이 시점에서 내 코드는 다음과 같습니다.

예외:File_delete.aspx.vb 행 번호: 34 오류 메시지:스레드가 중단되었습니다.

이벤트 뷰어에서 aspnet_wp.exe가 충돌하는 것을 볼 수 있습니다.

aspnet_wp.exe(PID: 1532)가 예기치 않게 중지되었습니다.

자세한 내용은 http://go.microsoft.com/fwlink/events.asp 의 도움말 및 지원 센터를 참조하십시오.

response.redirect를 사용하여 파일을 볼 뿐만 아니라 삭제할 때도 파일을 보기 때문에 여기서만 이러한 현상이 발생하는 이유가 명확하지 않습니다.

기본적으로,Response.Redirect()현재 스레드를 중단합니다.당연히, 이것은.ThreadAbortException다음을 통과하면 예방할 수 있습니다.false로.Response.Redirect()현재 스레드를 중단하지 않습니다.

하지만 그것이 무엇을 의미하는지 알아두세요.스레드가 중단되지 않은 경우, 다음 코드는Response.Redirect()계속 실행됩니다.그에 따라 논리 흐름을 제어합니다. (이것은 종종 다음과 같이 수행됩니다.)return지시문 및 기타 흐름 제어 지침(방향 변경 후).

Response.Redirect항상 던질 것입니다.ThreadAbortExceptionMSDN 문서에 따르면, 만약 당신이 제공하지 않는다면.false부울 값endResponse입력 매개 변수HttpRequest.Redirect(string, bool).

그냥 주기false로.endResponse매개 변수

여기에 제시된 이 문제를 해결하기 위한 옵션 목록은 저에게 효과가 있었습니다(#2 사용). https://gist.github.com/cemerson/9dea993044a4e7fdca0e

Response.Redirect예외를 의도적으로 던집니다.그것은 괜찮아.

비동기식 통화를 할 때 발생할 수 있습니다.응답을 사용합니다.리디렉션(string url, false). 여기서 string url은 리디렉션 URL입니다.

언급URL : https://stackoverflow.com/questions/4874823/response-redirect-raises-thread-was-being-aborted

반응형