2010-12-06 4 views
12

이 오류가 발생했습니다. 스레드가 중단되었습니다., 오늘 오후에 내 오류 로그에 있습니다.Response.Redirect 및 스레드가 중단되었습니다. 오류가 발생 했습니까?

이 오류가 발생하는 코드는 다음과 같습니다

Response.Redirect("Login.aspx", true); 

내가 falsebool 값을 변경하면 오류 로그가 비어되고이 오류가 다시 오는 중지하지만 프로그램이 작동을 멈 춥니 다.

그대로 유지하면이 오류가 발생합니다.

endResponse 매개 변수의 값으로 true을 전달하는 대안을 알고 싶습니다.

+2

http://msdn.microsoft.com/en-us/library/a8wa7sdt(VS.80).aspx – Mike

+1

Respose.Redirect는 내부적으로 Response.End를 호출하므로 'false'를 사용하여 표시하지 않을 수 있습니다. (Response.Redirect (Login.aspx, false);)하지만 프로그램이 작동하지 않아야합니다. – wizzardz

+1

예외가 발생한 경우 다른 방법으로 처리되지 않는 리디렉션 이후에 다른 논리가 처리되는 경우 프로그램이 작동하지 않을 수 있습니다. –

답변

17

ASP.NET은 예외적 인 상황이 아닌 흐름 제어에 예외를 사용하기 때문에이 예외를 발견하고이를 삼킨다.

try 
{ 
    // Do stuff. 
} 
catch(ThreadAbortException) 
{ 
    // Do nothing. ASP.NET is redirecting. 
    // Always comment this so other developers know why the exception 
    // is being swallowed. 
} 
catch(OtherExceptionTypes ex) 
{ 
    // Log other types of exception. 
} 
+0

일반적인 예외 대신 스레드 예외를 사용하면 오류 로그에 무엇이 인쇄됩니까? –

+0

예외를 잡아서 삼킨 경우 아무 것도 예외가 기록되지 않기 때문에 아무 것도 기록하지 않습니다. 또한 예외가 작동하는 방식에 대해 알아야 할 필요가있는 것 같습니다. –

+0

죄송합니다. 설치되지 않았습니다.내 집 시스템에서 그물. 그래서 나는 의심했다. –

2

당신이 (거짓 "Login.aspx")이 Response.Redirect를 같이 변경할 수 있습니다 는 다음 못해 중단. Response.Redirect(url) ThreadAbortException이 솔루션에 명시된 바와 같이

3

:

당신이 응답 에 리디렉션을 전송 한 후 시스템이 현재 웹 페이지 스레드의 처리를 중단하기 때문에 Response.Redirect(url)에 전화를 걸 때 ThreadAbortException이가 발생 흐름. Response.Redirect(url)은 실제로 내부적으로 Response.End() 을 호출하고, 을 호출하는 Response.End()입니다. 은 스레드를 끝내기 위해 스택을 버블합니다. 드물기는 하나 Response.End()에 전화가 실제로는 Thread.Abort()을 호출하지 않지만 대신 HttpApplication.CompleteRequest()을 호출합니다.

또는 Response.Redirect("~/Membership/UserRegistration.aspx");을 Try/Catch 블록 밖으로 이동하십시오. 생성, 리디렉션 할 모든 잡힌 오류의

1

는 '고토'다음과 같이 시도 캐치에서 운명 :

Try 

     'do stuff 

    Catch ex As Exception 

     'logging 
     GoTo MyRedirection 

    End Try 

    'Prevent redirection in case of no errors 
    Exit Sub 

MyRedirection: 
    Response.Redirect("login.aspx", True) 

이 어느 스레드 낙태의 원인도 여러 어획량이 필요합니다.

관련 문제