성태의 닷넷 이야기
홈 주인
모아 놓은 자료
프로그래밍
질문/답변
사용자 관리
사용자
메뉴
아티클
외부 아티클
유용한 코드
온라인 기능
MathJax 입력기
최근 덧글
[정성태] Roll A Lisp In C - Reading ; https...
[정성태] Java - How to use the Foreign Funct...
[정성태] 제가 큰 실수를 했군요. ^^; Delegate를 통한 Bein...
[정성태] Working with Rust Libraries from C#...
[정성태] Detecting blocking calls using asyn...
[정성태] 아쉽게도, 커뮤니티는 아니고 개인 블로그입니다. ^^
[정성태] 질문이 잘 이해가 안 됩니다. 우선, 해당 소스코드에서 ILis...
[양승조
] var대신 dinamic으로 선언해서 해결은 했습니다. 맞는 해...
[양승조
] 또 막혔습니다. ㅠㅠ var list = props[i].Ge...
[양승조
] 아. 감사합니다. 어제는 안됐던것 같은데....정신을 차려야겠네...
글쓰기
제목
이름
암호
전자우편
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'>서버 유형의 COM+ 사용 시 0x80080005(Server execution failed) 오류 발생</h1> <p> 서버 유형의, 즉 dllhost.exe로 호스팅되는 COM+ 개체를 생성하려고 했는데 다음과 같은 예외가 발생합니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > System.Runtime.InteropServices.COMException HResult=0x80080005 Message=Server execution failed Server execution failed Source=mscorlib StackTrace: at System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo) at System.EnterpriseServices.Thunk.Proxy.CoCreateObject(Type serverType, Boolean bQuerySCInfo, Boolean& bIsAnotherProcess, String& uri) at System.EnterpriseServices.ServicedComponentProxyAttribute.CreateInstance(Type serverType) at System.Runtime.Remoting.Activation.ActivationServices.IsCurrentContextOK(RuntimeType serverType, Object[] props, Boolean bNewObj) at ConsoleApp1.Program.Main(String[] args) </pre> <br /> 이런 경우, Server 유형의 COM+가 시작하지 못한 것인데 "<a target='tab' href='https://www.sysnet.pe.kr/2/0/11828#cmpmgmt'>Component Services</a>"에 등록된 해당 COM+를 명시적으로 "Start" 시켜 보면 동일한 에러와 함께 이벤트 로그를 보라는 메시지가 나옵니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > Catalog Error An error occurred while processing the last operation. Error code 80080005 - Server execution failed The event log may contain additional troubleshooting information. </pre> <br /> 그래서 이벤트 로그에 보면 이런 오류 항목이 나옵니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > Log Name: Application Source: Microsoft-Windows-Complus Date: ... Event ID: 4829 Task Category: Executive Level: Error Keywords: Classic User: N/A Computer: ... Description: A COM+ service (such as Queued Components or Compensating Resource Manager) failed to start. The service GUID and HRESULT are: {F27FBEFA-4970-43AF-9192-1DF990B6B898} Server Application ID: {FC3BD2AA-7BBE-41F7-9CAC-73F65735A7F9} Server Application Instance ID: {2BA5A7D5-952A-4C25-93E3-AEFB1A7B10C3} Server Application Name: TEST COMPLUS APP The serious nature of this error has caused the process to terminate. <span style='color: blue; font-weight: bold'>Error Code = 0x80070002 : The system cannot find the file specified.</span> COM+ Services Internals Information: File: com\complus\src\comsvcs\srgtapi\csrgtserv.cpp, Line: 63 Comsvcs.dll file version: ENU 2001.12.10941.16384 shp </pre> <br /> "0x80070002: The system cannot find the file specified." 메시지를 볼 수 있는데요, 실제로 해당 구성 요소에서 참조하고 있는 DLL이 GAC에 등록돼 있지 않아서 발생한 것입니다. 관련해서 다음의 도움말도 함께 보시고.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > Error when you start many COM+ applications: Error code 80080005 -- server execution failed ; <a target='tab' href='https://docs.microsoft.com/en-us/troubleshoot/windows-server/application-management/error-8008005-when-start-complus-applications'>https://docs.microsoft.com/en-us/troubleshoot/windows-server/application-management/error-8008005-when-start-complus-applications</a> </pre> <br /> <hr style='width: 50%' /><br /> <br /> 또는, 이벤트 로그에 이런 오류가 남을 수 있습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > Log Name: Application Source: Microsoft-Windows-Complus Date: ... Event ID: 4833 Task Category: Executive Level: Error Keywords: Classic User: N/A Computer: ... Description: The initialization of the COM+ surrogate failed -- the CApplication object failed to initialize. {FC3BD2AA-7BBE-41F7-9CAC-73F65735A7F9} Server Application ID: {FC3BD2AA-7BBE-41F7-9CAC-73F65735A7F9} Server Application Instance ID: {A447295F-EDD2-47CE-9C60-7FEF63643E4E} Server Application Name: TEST COMPLUS APP The serious nature of this error has caused the process to terminate. <span style='color: blue; font-weight: bold'>Error Code = 0x80131500 : </span> COM+ Services Internals Information: File: com\complus\src\comsvcs\srgtapi\csrgtserv.cpp, Line: 372 Comsvcs.dll file version: ENU 2001.12.10941.16384 shp </pre> <br /> 이 오류의 원인은 매우 다양할 수 있는데요, 검색해 보면 다음의 자료에서처럼,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > Event ID - 4833 ; <a target='tab' href='https://kb.eventtracker.com/evtPass/evtPages/EventId_4833_Microsoft-Windows-Complus_67050.asp'>https://kb.eventtracker.com/evtPass/evtPages/EventId_4833_Microsoft-Windows-Complus_67050.asp</a> </pre> <br /> 리소스 부족도 그럴 수 있겠지만, COM+가 구현한 <a target='tab' href='https://docs.microsoft.com/en-us/dotnet/api/system.enterpriseservices.iprocessinitializer'>IProcessInitializer</a>.<a target='tab' href='https://docs.microsoft.com/en-us/dotnet/api/system.enterpriseservices.iprocessinitializer.startup'>Startup</a> 함수에서 예외가 발생할 때도 저런 오류를 볼 수 있습니다.<br /> </p><br /> <br /><hr /><span style='color: Maroon'>[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]</span> </div>
첨부파일
스팸 방지용 인증 번호
6028
(왼쪽의 숫자를 입력해야 합니다.)