성태의 닷넷 이야기
홈 주인
모아 놓은 자료
프로그래밍
질문/답변
사용자 관리
사용자
메뉴
아티클
외부 아티클
유용한 코드
온라인 기능
MathJax 입력기
최근 덧글
[정성태] Detecting blocking calls using asyn...
[정성태] 아쉽게도, 커뮤니티는 아니고 개인 블로그입니다. ^^
[정성태] 질문이 잘 이해가 안 됩니다. 우선, 해당 소스코드에서 ILis...
[양승조
] var대신 dinamic으로 선언해서 해결은 했습니다. 맞는 해...
[양승조
] 또 막혔습니다. ㅠㅠ var list = props[i].Ge...
[양승조
] 아. 감사합니다. 어제는 안됐던것 같은데....정신을 차려야겠네...
[정성태] "props[i].GetValue(props[i])" 코드에서 ...
[정성태] 저렇게 조각 코드 말고, 실제로 재현이 되는 예제 프로젝트를 압...
[정성태] Modules 창(Ctrl+Shift+U)을 띄워서, 해당 Op...
[정성태] 만드실 수 있습니다. 단지, Unity 엔진 내의 스크립트와 W...
글쓰기
제목
이름
암호
전자우편
HTML
홈페이지
유형
제니퍼 .NET
닷넷
COM 개체 관련
스크립트
VC++
VS.NET IDE
Windows
Team Foundation Server
디버깅 기술
오류 유형
개발 환경 구성
웹
기타
Linux
Java
DDK
Math
Phone
Graphics
사물인터넷
부모글 보이기/감추기
내용
<div style='display: inline'> <h1 style='font-family: Malgun Gothic, Consolas; font-size: 20pt; color: #006699; text-align: center; font-weight: bold'>닷넷 응용 프로그램 실행 시 0x80131401 예외 발생</h1> <p> 다음과 같은 예외가 발생한다면?<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > 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 </pre> <br /> 아쉬운 것은, 어떤 DLL을 로드하다가 실패했는지 알 수 없다는 점입니다. 심지어 이벤트 로그를 살펴봐도,<br /> <br /> <pre style='height: 400px; margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > 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) </pre> <br /> 역시 정보가 없습니다. 메시지에서 의미하는 50 번째 라인은 "C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Config\web.config" 파일에서 다음과 같이 codedom 설정이 시작되는 구간입니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > <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> </pre> <br /> 이벤트 로그에는 나오지 않지만 "Loading this assembly would produce a different grant set from other instances" 메시지는 System.IO.FileLoadException 예외가 발생했을 때 볼 수 있는 것입니다.<br /> <br /> <hr style='width: 50%' /><br /> <br /> 위의 오류가 발생한 이유는 응용 프로그램의 이력을 살펴보는 것으로 해결할 수 있었습니다. 배경을 설명해 보면, .NET 4.5부터 추가된 System.Net.Http.dll 어셈블리를 참조해 Windows Server 2003에 배포한 것입니다. 즉, System.Net.Http.dll 파일을 로드할 수 없어 저런 예외가 발생한 것입니다. (.NET 4.5는 Windows Server 2003을 지원하지 않아 문제가 발생한 환경에서는 System.Net.Http.dll이 없었던 것입니다.)<br /> <br /> 혹시나 0x80131401 예외가 발생한다면? 해당 머신에 설치되지 않은 구성 요소가 있는지? 또는 새롭게 배포한 프로젝트에 신규로 추가한 참조 어셈블리가 있는지 확인해 보시면 됩니다.<br /> </p><br /> <br /> <br /><hr /><span style='color: Maroon'>[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]</span> </div>
첨부파일
스팸 방지용 인증 번호
1567
(왼쪽의 숫자를 입력해야 합니다.)