.NET 3.5 웹 응용 프로그램의 ASP.NET 사전 컴파일 중에 형식 초기화 프로그램에서 다양한 초기화가 수행됩니다. 형식 이니셜 라이저 중 하나가 환경이 잘못 구성된 경우 사용자 지정 예외를 throw합니다. 우리의 사용자 정의 예외가 발생 그러나, 여기에 aspnet_compiler.exe는 우리에게 무엇을 : 더 "진짜"스택 추적 정보가 포함되지 않도록ASP.NET 사전 컴파일 중 유형 확인 오류
[exec] error ASPRUNTIME: Type is not resolved for member 'App.Project.CustomException,App.Project, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.
[exec]
[exec] [SerializationException]: Type is not resolved for member 'App.Project.CustomException,App.Project, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.
[exec] at System.Web.Compilation.BuildManagerHost.PrecompileApp(ClientBuildManagerCallback callback)
[exec] at System.Web.Compilation.ClientBuildManager.PrecompileApplication(ClientBuildManagerCallback callback, Boolean forceCleanBuild)
[exec] at System.Web.Compilation.ClientBuildManager.PrecompileApplication(ClientBuildManagerCallback callback)
[exec] at System.Web.Compilation.Precompiler.Main(String[] args)
알 수 있습니다. 그러나 (우리의 사용자 정의 예외 대신) InvalidOperationException을 던지기 위해 코드를 변경하면 스택 추적이 올바르게 포함됩니다. (제쳐두고 우리의 CustomException 유형에는 [Serializable] 주석이 붙어 있습니다. [Serializable] 주석을 제거하면 aspnet_compiler.exe가 다르게 불평하며 사용자 정의 예외는 해당 사항으로 표시되지 않습니다.)
ASP.NET 사전 컴파일 중에 사용자 지정 예외를 throw하면 왜 Secondary SerializationException이 발생합니까? 예외를 직렬화하려고하는 이유는 무엇입니까? 마찬가지로 BCL InvalidOperationException 이 아닌을 사용하면 왜 Secondary SerializationException이 발생합니까?
예기치 않은 예외에 대해 aspnet_compiler.exe가 일종의 반사 작업을 수행하려고했기 때문일 수 있습니까? 따라서 우리 App.Project 어셈블리가로드되어 있지 않으므로 형식을 확인할 수 없습니다.
+1 용. 난 이상한 오류를 받고 있었고 실제 스택 추적을 결정하기 위해 프레임 워크 디렉토리에 복사하는 방법을 사용했습니다. 감사! – TheCloudlessSky
@ TheCloudlessSky 당신을 도왔습니다. –