2012-06-11 3 views
12
내가 표현을 평가하기

오류 : 코드가 최적화되어 있기 때문에 식을 계산할 수 없습니다

"없습니다 읽어 내 asp.net 응용 프로그램에서 오류를 얻고있다

코드 최적화 또는 네이티브 프레임의 상단에 있기 때문에 호출 스택. "

SO를 검색 한 후 비슷한 게시물 대부분이 response.redirect와 관련되어 있음을 알 수 있습니다. 내 코드는 server.transfer를 사용하고 있으며 내 응용 프로그램은 Master Pages도 사용하고 있습니다.

이 문제를 어떻게 해결할 수 있습니까?

업데이트 : 어떤 이유로 인해이 오류는 Response.Redirect도 사용합니다. 불행히도 Server.Execute는 호출 페이지를 끝으로 호출하기 때문에 Server.Execute를 사용할 수 없습니다.

당신이 설명하는 문제는 다음과 같이 설계 될 것으로 보인다
+0

예외를 throw하는 코드를 게시 할 수 있습니까? – davioooh

+0

으음 ... 제 경우에는 문제가'Response.End'에 의해 발생했습니다 ... 그러나 당신의 코드를 보면이 이슈의 원인이 무엇인지 말할 수 없습니다 ... – davioooh

답변

13

당신은 오류가 발생합니다,하지만 의지 트랩 아래의 코드 블록은 당신은 당신의 삶을 얻을 수 있습니다.

이 시도 : 나는 MS-테스트를 ​​사용하여 멀티 스레딩 응용 프로그램의 작동을 테스트 할 때

using System.Threading.ThreadAbortException; 

catch(ThreadAbortException ex) 
{ 
    throw; 
} 
+0

나는 이것을 추가했지만 여전히 같은 오류가 발생합니다. –

10
+0

귀하의 링크 정보는 .net 1.0을 나타냅니다. & 1.1 프레임 워크. 4.0 프레임 워크를 사용하고 있습니다. 나는이 문제가 8 년 후에 해결 될 것이라고 생각한다. – DotNetRookie

+7

@DotNetRookie Microsoft는 문제를 해결하지 않고 "알려진 문제"로 표시합니다. :) – davioooh

+0

server.execute의 문제는 호출 페이지로 돌아갑니다. 저는 현재 server.transfer를 수행하는 코드를 가지고 있기 때문에 동일한 코딩 전략을 고수 할 수 있는지 알고 싶습니다. http://techahead.wordpress.com/2007/10/14/aspnet-serverransfer-vs-serverexecute/ – DotNetRookie

2

당신이 response.redirect()server.transfer를 교체 봤어 문제를 해결해야 Server.Execute를 사용하십니까?

Server.Transfer VS Response.Redirect

+0

응용 프로그램에 현재 server.transfer를 사용하는 코드가 있습니다 (코드는 개발자가 수행했습니다. 이제는 더 이상 존재하지 않습니다.) 따라서 현재 아키텍처와 일관성을 유지해야합니다. – DotNetRookie

1

나는이 메시지를 직면했다.

테스트 주 스레드가 종료되고 무한히 실행되도록 의도 된 다른 생성 된 스레드가 여전히 작동하는 동안 개체 정리가 초기화 되었기 때문에이 원인이 발견되었습니다.

유두 정리 방법으로 개체를 죽이면 이러한 스레드가 위의 메시지를 표시하면서 중단됩니다.

관련 문제