Microsoft MVP성태의 닷넷 이야기
오류 유형: 456. 닷넷 응용 프로그램 실행 시 0x80131401 예외 발생 [링크 복사], [링크+제목 복사],
조회: 16651
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 

닷넷 응용 프로그램 실행 시 0x80131401 예외 발생

다음과 같은 예외가 발생한다면?

Server Error in '/' Application.
--------------------------------------------------------------------------------

Configuration Error 
Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately. 

Parser Error Message: An error occurred creating the configuration section handler for system.codedom: Loading this assembly would produce a different grant set from other instances. (Exception from HRESULT: 0x80131401)

Source Error: 


An application error occurred on the server. The current custom error settings for this application prevent the details of the application error from being viewed remotely (for security reasons). It could, however, be viewed by browsers running on the local server machine.
 

Source File: C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Config\web.config    Line: 50 


--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.1031 

아쉬운 것은, 어떤 DLL을 로드하다가 실패했는지 알 수 없다는 점입니다. 심지어 이벤트 로그를 살펴봐도,

Event code: 3008 
Event message: A configuration error has occurred. 
Event time: 2018-03-16 오전 9:07:16 
Event time (UTC): 2018-03-16 오전 12:07:16 
Event ID: a144b120efee431783f32b3fb1ffe2f4 
Event sequence: 1 
Event occurrence: 1 
Event detail code: 0 
 
Application information: 
    Application domain: /LM/W3SVC/1053363633/Root-39211-131656324365434624 
    Trust level: Full 
    Application Virtual Path: / 
    Application Path: D:\TestWebSiteV4\ 
    Machine name: win2003test
 
Process information: 
    Process ID: 2616 
    Process name: w3wp.exe 
    Account name: NT AUTHORITY\SYSTEM 
 
Exception information: 
    Exception type: ConfigurationErrorsException 
    Exception message: An error occurred creating the configuration section handler for system.codedom: Loading this assembly would produce a different grant set from other instances. (Exception from HRESULT: 0x80131401) (C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Config\web.config line 50)
   at System.Configuration.BaseConfigurationRecord.EvaluateOne(String[] keys, SectionInput input, Boolean isTrusted, FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentResult)
   at System.Configuration.BaseConfigurationRecord.Evaluate(FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentResult, Boolean getLkg, Boolean getRuntimeObject, Object& result, Object& resultRuntimeObject)
   at System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object& result, Object& resultRuntimeObject)
   at System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object& result, Object& resultRuntimeObject)
   at System.Configuration.BaseConfigurationRecord.GetSection(String configKey, Boolean getLkg, Boolean checkPermission)
   at System.Configuration.BaseConfigurationRecord.GetSection(String configKey)
   at System.Web.Configuration.HttpConfigurationSystem.GetApplicationSection(String sectionName)
   at System.Web.Configuration.HttpConfigurationSystem.GetSection(String sectionName)
   at System.Web.Configuration.HttpConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.GetSection(String configKey)
   at System.Configuration.ConfigurationManager.GetSection(String sectionName)
   at System.Configuration.PrivilegedConfigurationManager.GetSection(String sectionName)
   at System.CodeDom.Compiler.CodeDomProvider.get_Config()
   at System.CodeDom.Compiler.CodeDomProvider.GetCompilerInfoForExtensionNoThrow(String extension)
   at System.CodeDom.Compiler.CodeDomProvider.IsDefinedExtension(String extension)
   at System.Web.Compilation.CompilationUtil.GetProviderOptions(Type codeDomProviderType)
   at System.Web.Compilation.CompilationUtil.GetProviderOption(Type codeDomProviderType, String providerOption)
   at System.Web.Compilation.CompilationUtil.GetCompilerVersion(Type codeDomProviderType)
   at System.Web.Compilation.MultiTargetingUtil.GetCSharpCompilerVersion()
   at System.Web.Compilation.MultiTargetingUtil.ValidateCompilerVersionFor40AndAbove()
   at System.Web.Compilation.MultiTargetingUtil.InitializeTargetFrameworkNameFor40AndAbove(String targetFrameworkMoniker)
   at System.Web.Compilation.MultiTargetingUtil.InitializeTargetFrameworkName()
   at System.Web.Compilation.MultiTargetingUtil.EnsureFrameworkNamesInitialized()
   at System.Web.Compilation.BuildManager.Initialize()
   at System.Web.Compilation.BuildManager.InitializeBuildManager()
   at System.Web.HttpRuntime.HostingInit(HostingEnvironmentFlags hostingFlags, PolicyLevel policyLevel, Exception appDomainCreationException)

Loading this assembly would produce a different grant set from other instances. (Exception from HRESULT: 0x80131401)
   at System.Xml.XmlDocument.Load(XmlReader reader)
   at System.Configuration.ErrorInfoXmlDocument.LoadFromConfigXmlReader(ConfigXmlReader reader)
   at System.Configuration.ErrorInfoXmlDocument.CreateSectionXmlNode(ConfigXmlReader reader)
   at System.Configuration.RuntimeConfigurationRecord.RuntimeConfigurationFactory.CreateSectionImpl(RuntimeConfigurationRecord configRecord, FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentConfig, ConfigXmlReader reader)
   at System.Configuration.RuntimeConfigurationRecord.RuntimeConfigurationFactory.CreateSectionWithFullTrust(RuntimeConfigurationRecord configRecord, FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentConfig, ConfigXmlReader reader)
   at System.Configuration.RuntimeConfigurationRecord.RuntimeConfigurationFactory.CreateSection(Boolean inputIsTrusted, RuntimeConfigurationRecord configRecord, FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentConfig, ConfigXmlReader reader)
   at System.Configuration.RuntimeConfigurationRecord.CreateSection(Boolean inputIsTrusted, FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentConfig, ConfigXmlReader reader)
   at System.Configuration.BaseConfigurationRecord.CallCreateSection(Boolean inputIsTrusted, FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentConfig, ConfigXmlReader reader, String filename, Int32 line)

 
 
Request information: 
    Request URL: http://localhost:8010/about.aspx 
    Request path: /about.aspx 
    User host address: 127.0.0.1 
    User:  
    Is authenticated: False 
    Authentication Type:  
    Thread account name: NT AUTHORITY\SYSTEM 
 
Thread information: 
    Thread ID: 37 
    Thread account name: NT AUTHORITY\SYSTEM 
    Is impersonating: False 
    Stack trace:    at System.Configuration.BaseConfigurationRecord.EvaluateOne(String[] keys, SectionInput input, Boolean isTrusted, FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentResult)
   at System.Configuration.BaseConfigurationRecord.Evaluate(FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentResult, Boolean getLkg, Boolean getRuntimeObject, Object& result, Object& resultRuntimeObject)
   at System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object& result, Object& resultRuntimeObject)
   at System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object& result, Object& resultRuntimeObject)
   at System.Configuration.BaseConfigurationRecord.GetSection(String configKey, Boolean getLkg, Boolean checkPermission)
   at System.Configuration.BaseConfigurationRecord.GetSection(String configKey)
   at System.Web.Configuration.HttpConfigurationSystem.GetApplicationSection(String sectionName)
   at System.Web.Configuration.HttpConfigurationSystem.GetSection(String sectionName)
   at System.Web.Configuration.HttpConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.GetSection(String configKey)
   at System.Configuration.ConfigurationManager.GetSection(String sectionName)
   at System.Configuration.PrivilegedConfigurationManager.GetSection(String sectionName)
   at System.CodeDom.Compiler.CodeDomProvider.get_Config()
   at System.CodeDom.Compiler.CodeDomProvider.GetCompilerInfoForExtensionNoThrow(String extension)
   at System.CodeDom.Compiler.CodeDomProvider.IsDefinedExtension(String extension)
   at System.Web.Compilation.CompilationUtil.GetProviderOptions(Type codeDomProviderType)
   at System.Web.Compilation.CompilationUtil.GetProviderOption(Type codeDomProviderType, String providerOption)
   at System.Web.Compilation.CompilationUtil.GetCompilerVersion(Type codeDomProviderType)
   at System.Web.Compilation.MultiTargetingUtil.GetCSharpCompilerVersion()
   at System.Web.Compilation.MultiTargetingUtil.ValidateCompilerVersionFor40AndAbove()
   at System.Web.Compilation.MultiTargetingUtil.InitializeTargetFrameworkNameFor40AndAbove(String targetFrameworkMoniker)
   at System.Web.Compilation.MultiTargetingUtil.InitializeTargetFrameworkName()
   at System.Web.Compilation.MultiTargetingUtil.EnsureFrameworkNamesInitialized()
   at System.Web.Compilation.BuildManager.Initialize()
   at System.Web.Compilation.BuildManager.InitializeBuildManager()
   at System.Web.HttpRuntime.HostingInit(HostingEnvironmentFlags hostingFlags, PolicyLevel policyLevel, Exception appDomainCreationException)

역시 정보가 없습니다. 메시지에서 의미하는 50 번째 라인은 "C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Config\web.config" 파일에서 다음과 같이 codedom 설정이 시작되는 구간입니다.

<system.codedom>
    <compilers>
        <compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
            <providerOption name="CompilerVersion" value="v4.0"/>
            <providerOption name="WarnAsError" value="false"/>
        </compiler>
        <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" warningLevel="4" type="Microsoft.VisualBasic.VBCodeProvider, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
            <providerOption name="CompilerVersion" value="v4.0"/>
            <providerOption name="OptionInfer" value="true"/>
            <providerOption name="WarnAsError" value="false"/>
        </compiler>
    </compilers>
</system.codedom>

이벤트 로그에는 나오지 않지만 "Loading this assembly would produce a different grant set from other instances" 메시지는 System.IO.FileLoadException 예외가 발생했을 때 볼 수 있는 것입니다.




위의 오류가 발생한 이유는 응용 프로그램의 이력을 살펴보는 것으로 해결할 수 있었습니다. 배경을 설명해 보면, .NET 4.5부터 추가된 System.Net.Http.dll 어셈블리를 참조해 Windows Server 2003에 배포한 것입니다. 즉, System.Net.Http.dll 파일을 로드할 수 없어 저런 예외가 발생한 것입니다. (.NET 4.5는 Windows Server 2003을 지원하지 않아 문제가 발생한 환경에서는 System.Net.Http.dll이 없었던 것입니다.)

혹시나 0x80131401 예외가 발생한다면? 해당 머신에 설치되지 않은 구성 요소가 있는지? 또는 새롭게 배포한 프로젝트에 신규로 추가한 참조 어셈블리가 있는지 확인해 보시면 됩니다.





[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]







[최초 등록일: ]
[최종 수정일: 3/20/2018]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




... 181  182  183  184  185  [186]  187  188  189  190  191  192  193  194  195  ...
NoWriterDateCnt.TitleFile(s)
325정성태9/8/200627408    답변글 디버깅 기술: 5.12. CCP를 이용한 Windows Source Code 수준의 디버깅
329정성태8/19/200626394    답변글 디버깅 기술: 5.13. 소스 서버 구성 [1]
332정성태8/20/200627893    답변글 디버깅 기술: 5.14. GAC 에 등록된 Assembly 디버그 [2]
341정성태9/16/200620255    답변글 디버깅 기술: 5.15. [내용 예약]
342정성태9/16/200637780    답변글 디버깅 기술: 5.16. ASP.NET 디버깅 환경 구성 [1]파일 다운로드1
306정성태2/13/200717309기타: 15. .NET 이 생산성이 높다는 증거(!)
304정성태7/21/200619234VS.NET IDE: 41. 하위 폴더의 모든 프로젝트의 출력물을 제거 (Clean)
305정성태7/21/200618891    답변글 VS.NET IDE: 41.1. 하위 폴더의 모든 프로젝트의 출력물을 제거 (Clean) [1]
303정성태7/20/200616916Team Foundation Server: 12. 사용자 계정 재생성에 따른 Version Control 영향
302정성태8/21/200618527Team Foundation Server: 11. TFS Team Build와 VC++ Project 설정
299정성태7/23/200618951개발 환경 구성: 5. VMWare - VM 생성 화면 캡쳐
300정성태7/15/200623329    답변글 개발 환경 구성: 5.1. VMWare 오류 유형 - The handle is invalid.
301정성태7/18/200618388    답변글 개발 환경 구성: 5.2. VMWare - 사용 후기.
298정성태7/14/200618766개발 환경 구성: 4. VMWare Server를 64bit 운영체제에 설치 시 주의 사항 [2]
296정성태7/10/200628046.NET Framework: 73. [ASP.NET] HTC(DHTML Control Behavior)를 WebResource.axd로 제공하는 방법 [3]
295정성태7/1/200621300VC++: 25. Microsoft National Language Support Downlevel APIs 1.0 사용 방법파일 다운로드1
294정성태6/30/200617850.NET Framework: 72. XSDObjectGen.EXE 기능 개선
293정성태6/29/200619577Team Foundation Server: 10. TFS 버전 컨트롤(TFVC)에 참여시킨 프로젝트의 로컬 경로를 옮기는 방법
290정성태6/26/200616963Team Foundation Server: 9. HTTPS를 통한 Team Server 접근 - 두 번째 이야기 [1]
291정성태6/26/200618305    답변글 Team Foundation Server: 9.1. [선행 작업] HTTPS 를 통한 Team Server 접근 - 두번째 이야기 [1]
292정성태6/26/200617950    답변글 Team Foundation Server: 9.2. TF30177 오류 발생
307정성태8/3/200619619    답변글 Team Foundation Server: 9.3. Team Server 접근 이름을 바꾸는 방법 [1]파일 다운로드1
308정성태2/18/200719295        답변글 Team Foundation Server: 9.4. Team Server HTTPS 접근 완료. ^^ [1]
288정성태6/26/200634183오류 유형: 10. error MSB6006: "aspnet_merge.exe" exited with code 1
286정성태6/23/200622293웹: 4. 웹 사이트 식별자(Identifier) 값 변경
285정성태6/20/200622606오류 유형: 9. [TFS] Report 관련 서비스를 조회할 때 rsErrorImpersonatingUser 오류 메시지 발생 [1]
... 181  182  183  184  185  [186]  187  188  189  190  191  192  193  194  195  ...