서버 실행에 실패했습니다(HRESULT: 0x80080005(CO_E_SERVER_EXEC_).실패)
측에서 ..xls 파일에는 .xls를 사용합니다.Microsoft.Office.Interop.Excel.Workbook뭇매를 맞다
workBook.SaveAs("FILENAME_HERE", XlFileFormat.xlOpenXMLWorkbook, Type.Missing, Type.Missing, Type.Missing, Type.Missing, XlSaveAsAccessMode.xlNoChange, Microsoft.Office.Interop.Excel.XlSaveConflictResolution.xlLocalSessionChanges, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
다음의 에러가 표시됩니다.
Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error: 80080005 Server execution failed (Exception from HRESULT: 0x80080005 (CO_E_SERVER_EXEC_FAILURE)). : System.Runtime.InteropServices.COMException (0x80080005): Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error: 80080005 Server execution failed (Exception from HRESULT: 0x80080005 (CO_E_SERVER_EXEC_FAILURE)).
at System.Runtime.Remoting.RemotingServices.AllocateUninitializedObject(RuntimeType objectType)
at System.Runtime.Remoting.Activation.ActivationServices.CreateInstance(RuntimeType serverType)
at System.Runtime.Remoting.Activation.ActivationServices.IsCurrentContextOK(RuntimeType serverType, Object[] props, Boolean bNewObj)
at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck)
at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)
at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)
at System.Activator.CreateInstance(Type type, Boolean nonPublic)
at System.Activator.CreateInstance(Type type)
at CALLING_METHOD_IN_MY_LIBRARY_HERE...
문제는 이 오류가 스테이징 서버에서만 발생한다는 것입니다.로컬 머신에서는 정상적으로 동작합니다.
스테이징 서버에서 시도한 것:
- **1) dcomcnfg open Component Services를 실행합니다.
2) 컴포넌트 서비스 ->"컴퓨터 ->"내 컴퓨터 ->" DCOM 설정"을 전개합니다.
3) "Microsoft Excel 어플리케이션"을 찾습니다.
4) [속성]대화상자를 여는 오른쪽
5) [보안]탭을 클릭.
6) "기동 및 액티베이션 권한, 설정 권한, 추가 권한 있음 - 관리자 사용자(이 사용자), 대화형 사용자 및 부팅 사용자에서 ID 실행
7) 부팅 및 활성화 권한 + 접근 권한 + 구성 권한 => 추가 IIS_IUSRS + 네트워크 서비스 (풀컨트롤 포함)**
2. 로컬 머신의 .xls 파일을 "Any CPU"에서 "x86"으로 변환하는 프로젝트의 빌드를 변경하여 이 라이브러리를 서버에 공개합니다.
누가 이 문제를 해결할 방법을 알아냈나요?저는 지금 이틀 동안 이 문제를 해결하기 위해 고심하고 있습니다.
DCOMCNFG.exe 사용.파일을 열고 컴포넌트 서비스 -> 컴퓨터 -> 내 컴퓨터 -> DCOM 구성 -> Microsoft Excel 응용 프로그램으로 이동합니다.
속성을 열고 ID 탭을 선택한 다음 대화형 사용자를 선택합니다.
해답은 다른 곳에서 찾았습니다.
다음 작업을 수행하면 문제가 해결되었습니다.
DCOMCNFG.exe 사용.파일을 열고 컴포넌트 서비스 -> 컴퓨터 -> 내 컴퓨터 -> DCOM 구성 -> Microsoft Excel 응용 프로그램으로 이동합니다.속성을 열고 ID 탭을 선택한 다음 대화형 사용자를 선택합니다.
하지만 - 문제는 몇 분마다 재발했다!
원인을 파악하려고 몇 시간 동안 노력한 결과, 서버에 수백 개의 WINWORD가 열려 있는 것을 알 수 있었습니다.EXE 프로세스이로 인해 메모리 문제가 발생하여exception from hresult 0x80080005
음, 멍청하게도 인터오퍼레이션 애플리케이션을 닫는 코드를 쓰는 걸 깜빡했네요.그것을 고치고 나서, 에러는 없어졌습니다.
doc.Close(false);
Marshal.ReleaseComObject(doc);
word.Quit();
Marshal.ReleaseComObject(word);
이 문제에 대해 자세히 설명하는 이 문서를 찾았습니다.이것이 도움이 되는 경우는, 에러 「80080005 Server 실행 실패(HRESULT: 0x80080005 (CO_E_SERVER_EXEC)」가 표시됩니다.FAILURE))"는 다음과 같은 이유로 인해 발생할 수 있습니다.
- 머신의 CPU 부하가 높아 프로세스 시작까지 시간이 오래 걸리고 CoRegisterClassObjects()를 120초 이내에 실행할 수 없습니다.
- COM 서버가 올바른 클래스 ID에 등록되지 않았습니다.
- COM 서버가 현재 정지하고 있으며 CoCreateInstance와 COM 서버 정지부 사이에 레이스 조건이 있습니다.
- COM 서버의 기동 방법에 시큐러티상의 문제가 있습니다(이 페이지는 패스워드의 철자가 틀리거나 「Run As...」COM 서버의 「Login as Batch Job」특권이 없는 것 같습니다만, 어쨌든, 이 정보를 특정의 설정에 대해서 재검증하는 것을 추천합니다).
이 문제를 해결했습니다.컴포넌트 서비스/컴퓨터/DCOM 구성/Microsoft Word97 - 2003 Document Properties / General 탭 오른쪽 클릭
인증 수준 설정:없음.
수정 방법은 [파일]-> [옵션]-> [저장]에서 [자동복구]를 무효로 하고 나서, 자동검출된 모든 파일을 폐기하는 것입니다.근본 원인인 자동 복구 파일의 볼륨인 것 같습니다.
배경 나는 많은 열기/닫기/컴퓨팅 사이클을 순환한다.C# 앱이 정기적으로 워크북을 열지 못하고 다음 오류가 발생합니다.
Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error: 80080005 Server execution failed (Exception from HRESULT: 0x80080005 (CO_E_SERVER_EXEC_FAILURE)).
앱은 이 오류를 반복하여 Excel에서 AutoRecovered 파일이 삭제될 때까지 이 상태를 유지합니다.
또 다른 증상이 있습니다.Excel 앱을 열려고 하면(기존 워크북이 아닌 새로운 워크북을 작성하려고 하면) CPU 사이클이 오래 걸립니다.최종적으로 파일이 열리고 왼쪽의 [복구된 파일]페인에 많은 파일이 표시됩니다.
I Close모든 파일이 파기됩니다.이 절차 후 Excel을 다시 여는 것은 거의 즉시입니다.앱은 지금부터 다시 정상적으로 동작합니다.
같은 문제가 해결되었습니다.서비스의 「데스크탑·인터랙션을 가능하게 한다」라고 하는 것으로, 해결했습니다.(로그온 탭의 Tomcat6w 구성 도구)
시작 -> 실행(Windows+R)
입력: dcomcnfg -32 ( Enter 키를 누릅니다) 컴포넌트 서비스를 엽니다.
컴포넌트 서비스, 컴퓨터, 내 컴퓨터, DCOM 구성 전개
「Microsoft Excel 애플리케이션」까지 스크롤 다운 합니다.
오른쪽 버튼을 클릭하여 속성을 선택하고 보안 탭으로 이동합니다.
액세스 권한 편집
[추가(Add)]을 클릭합니다.
<Computer_Name>/ 라고 입력합니다.IIS_IUSRS(또는 [Locations](로케이션)로 이동하여 컴퓨터명을 선택합니다.도메인을사용하고있는경우기본적으로도도메인은검색되지만IIS_IUSRS)
"로컬 액세스"에 대해 "허용" 체크박스가 켜져 있는지 확인합니다.
[확인]을 클릭하여 다시 [확인]을 클릭합니다(재기동 불필요).
Windows Update는 이 기능을 한 번에 리셋합니다.
스레드 추가를 시도합니다.스레드 등의 sleep 방법.workBook.open 및 workbook 후 2초간 sleep(2000)합니다.SaveAs는 2개의 메서드입니다.Excel 파일의 형식이 많은 경우 몇 초 더 연장해 보십시오.
언급URL : https://stackoverflow.com/questions/22062284/server-execution-failed-exception-from-hresult-0x80080005-co-e-server-exec-fa
'programing' 카테고리의 다른 글
| 로컬 스토리지에서 Vuex 상태가 업데이트되지 않음 (0) | 2023.06.15 |
|---|---|
| Excel 2010에서 워크시트 전체를 새 워크시트에 복사 (0) | 2023.04.21 |
| Microsoft Azure 문서DB vs Azure 테이블 스토리지 (0) | 2023.04.21 |
| 긴 n = 2000*2000*2000; 오버플로우인 이유는 무엇입니까? (0) | 2023.04.21 |
| StackPanel의 자 요소를 띄우려면 어떻게 해야 합니까? (0) | 2023.04.21 |