source

asp.net 을 통해 Office Word 개체 모델에 액세스하면 "80070005 액세스가 거부되었습니다."라는 오류로 인해 오류가 발생합니다.

factcode 2023. 5. 14. 11:09
반응형

asp.net 을 통해 Office Word 개체 모델에 액세스하면 "80070005 액세스가 거부되었습니다."라는 오류로 인해 오류가 발생합니다.

저는 사용자가 사무실 문서를 업로드한 다음 사무실 객체 모델을 사용하여 문서를 HTML 파일로 변환하여 iFrame에 표시할 수 있는 웹 사이트를 개발했습니다.

물론, 저는 오피스에 대한 언급을 포함시켰습니다.인터럽트단어, 그리고 그 사이트는 내 개발 기계에서 잘 작동합니다.생산 서버에 업로드하면 문서를 업로드할 때까지 사이트가 정상적으로 작동합니다.처음에 "COM 개체가 등록되지 않았습니다"라는 유사한 오류가 발생했습니다.운영 서버에 Word가 설치되어 있지 않은 것을 확인했습니다.그래서 word를 설치했는데 서버가 word object model에 액세스하려고 하면 다음 오류가 발생합니다.

COM 클래스 팩토리에서 CLSID가 {000209인 구성 요소를 검색하는 중FF-0000-0000-C000-00000046}이(가) 다음 오류로 인해 실패했습니다. 80070005 액세스가 거부되었습니다. (HRESULT: 0x80070005(E_ACCESSDENED))

레지스트리에서 해당하는 CLSID를 검색하여 해당 폴더를 찾았습니다.저는 IUSR_ 계정에 모든 권한을 추가했고 오류가 지속되었기 때문에 결국 "모든 사람"에게 모든 권한을 추가하여 폴더의 나머지 부분에 상속되도록 했습니다.그런 다음 IUSR_에 전체 제어를 추가했고 결국 "모두"에 대한 전체 제어를 Microsoft Office 폴더에 추가했습니다.

어떤 다른 권한을 부여해야 하는지, "액세스가 거부되었습니다" 오류가 발생하는 위치를 알 수 없습니다.제가 알기로는 "모두" "완전한 통제"보다 더 관대할 수 없기 때문에 저는 잘못된 곳에서 그들을 인정하고 있는 것이 틀림없습니다.

누가 빛을 좀 비출 수 있나요?

좋습니다. 이 문제는 다음 단계에서 해결했습니다.

  1. 명령줄에 DCOMCNFG를 입력합니다.
  2. 콘솔 루트 > 구성 요소 서비스 > 컴퓨터를 확장하고 내 컴퓨터를 마우스 오른쪽 단추로 클릭한 다음 속성 선택
  3. Tab COM Security > Launch and Activation Permissions에서 Edit Default를 클릭합니다.
  4. 사용자 추가(예:IIS_IUSRS) 또는 서비스
  5. 로컬 시작 및 로컬 활성화 허용 확인

그러면 Excel, Word 및 기타 애플리케이션이 작동할 수 있습니다. 행운을 빕니다.

이것은 저에게 효과가 있었습니다.

  1. 에 명줄입을 합니다.DCOMCNFG
  2. 구성 요소 서비스 -> 컴퓨터 -> 내 컴퓨터 -> DCOM 구성
  3. " 97 - Document Word 97 - 2003 Document"를 하지 않는 하십시오).mmc comexp.msc /32DCOMCNFG Darkseal이 여기서 제안한 대로 1단계에서)
  4. 마우스 오른쪽 버튼 클릭 -> 속성
  5. 탭 보안으로 이동하고 "사용자 지정" 라디오 단추를 편집하여 IIS_IUSRS가 시작 및 액세스 권한을 가질 수 있음
  6. 탭 ID로 이동하여 "대화형 사용자"를 선택합니다.
  7. 변경 사항 적용 후 다시 시도
  8. 이 모든 것이 실패할 경우, "일반" 탭으로 이동한 후 "인증 수준" 드롭다운에서 "없음"을 선택합니다.

Word가 설치된 서버 시스템에서 이벤트 뷰어의 윈도우즈 로그, 시스템을 확인합니다.다음과 유사한 내용을 읽는 이벤트가 기록되어 있습니까?

컴퓨터 기본 권한 설정이 CLSID가 {148BEE7F-6123-41EE-8CCA-E390902인 COM 서버 응용 프로그램에 대한 로컬 활성화 권한을 부여하지 않습니다.BD0D8}을(를) 사용자 SomeMachine\에 할당일부 사용자 SID(S-1-5-21-483881670-2168941642-1987552629-1003)가 LocalHost(LRPC 사용) 주소로 전송됩니다.이 보안 권한은 Component Services 관리 도구를 사용하여 수정할 수 있습니다.

그렇다면 DCOMCNFG를 실행합니다.EXE를 선택하고 구성 요소 서비스, 컴퓨터, 내 컴퓨터(또는 어떤 이름이든 상관없이), DCOM 구성(그리고 수정할 항목이 있는지 묻는 메시지가 나타나면 "아니오"라고 대답하면 됩니다)으로 이동한 후 이벤트 로그 메시지의 이름, 여기 항목 이름,이벤트 로그 메시지가 CLSID(위의 예와 같이)에 대한 것이면 CLSID "{148B...(그것은 제가 붙여넣은 임의의 CLSID입니다. 아마도 000209와 일치할 것입니다.FF... 위)를 클릭하고 More actions...(추가합니다.속성, 보안 탭으로 이동합니다.

여기서 [x] 사용자 정의를 선택한 다음 편집을 선택하여 적절한 사용자 계정이 필요한 DCOM 응용 프로그램 또는 클래스를 활성화하고 액세스할 수 있는 권한을 추가할 수 있습니다.

추측일 뿐이지만, 시도해보거나 이러한 방식(즉, DCOMCNFG를 통해 CLSID에 대한 액세스 권한 부여)을 사용해 보십시오.

Microsoft Word 97 - 2003 Document 레코드가 DCOM 구성 항목에 나열되지 않았기 때문에 수락된 답변을 사용하여 이 문제를 해결하는 데 어려움을 겪었습니다.이 Techet 블로그 게시물에서 문제를 올바르게 설명하는 솔루션을 찾았습니다.

64비트 컴퓨터에 32비트 Microsoft Office를 설치하는 경우 운영 체제에 따라 32비트 DCOM 구성 관리자를 사용하여 프로그램을 봐야 할 수도 있습니다.

윈도우즈 XP에서 윈도우즈 서버 2008으로 연결되는 x64 운영 체제의 경우 DCOMCNFG의 64비트 버전입니다.EXE가 원격 활성화를 위해 32비트 DCOM 응용 프로그램을 올바르게 구성하지 않습니다.이 동작으로 인해 로컬로 활성화되는 대신 원격으로 활성화되는 구성 요소가 발생합니다.윈도우즈 7 및 윈도우즈 서버 2008 R2 이상 버전에서는 이 동작이 발생하지 않습니다.

참조: http://msdn.microsoft.com/en-us/library/windows/desktop/ms678426(v=vs.85).aspx

또한 다음과 같은 명령줄 명령을 사용할 것을 제안했습니다.DCOMCNFG) 효과적인 해결책:

mmc comexp.msc /32

그러면 64비트 DCOM 구성 관리자 대신 32비트 DCOM 구성 관리자가 강제로 로드되고 승인된 답변에 설명된 단계를 수행할 수 있습니다.그래도 문제가 해결되지 않으면 이 문서에서는 다른 여러 가지 해결 방법도 설명합니다.

이 주제에 대한 자세한 내용은 제 블로그에서 이 게시물을 읽으실 수도 있습니다.

DCOM에서 Microsoft Word 응용 프로그램을 찾을 수 없는 경우

32비트 Office가 있는 64비트 시스템에서 다음을 시도합니다.

  1. 리스트 항목
  2. 시작
  3. 달려.
  4. mmc-32
  5. 파일
  6. 스냅인 제거 추가
  7. 구성 요소 서비스
  8. 더하다
  9. 네 알겠습니다
  10. 콘솔 루트
  11. 구성 요소 서비스
  12. 컴퓨터
  13. 내 컴퓨터
  14. DCOM 구성

그 후

  1. "Microsoft Word 97 - 2003 Document" 찾기(누락된 경우 Word도 64비트(Windows인 경우))
  2. 마우스 오른쪽 버튼 클릭 -> 속성
  3. 탭 보안으로 이동하고 "사용자 지정" 라디오 단추를 편집하여 IIS_IUSRS가 시작 및 액세스 권한을 가질 수 있음
  4. 탭 ID로 이동하여 "대화형 사용자"를 선택합니다. 변경 사항을 적용하고 다시 시도하십시오.
  5. 이 모든 것이 실패할 경우, "일반" 탭으로 이동한 후 "인증 수준" 드롭다운에서 "없음"을 선택합니다.

위의 내용 외에도 다른 사람들도 마주칠 경우를 대비해 공유해야겠다고 생각한 이슈를 접했습니다.

interop을 사용하던 .net 앱의 애플리케이션 풀 사용자가 관리자에 추가되었지만 iis 캐싱 환경으로 인해 적용되지 않았습니다.앱 풀 사용자의 적절한 관리 상태를 반영하기 위해 iisreset과 함께 위의 작업을 수행한 후 모든 작업이 정상적으로 수행되었습니다.

언급URL : https://stackoverflow.com/questions/3477086/accessing-office-word-object-model-through-asp-net-results-in-failed-due-to-the

반응형