2015-01-27 15 views
0

C#으로 Word 프로세스 (Microsoft.Office.Interopt.Word)를 시작하는 Windows 응용 프로그램을 만들었습니다. 두 개의 addins word.AddIns.Add (@ "C : \ temp \ addin.dot", true);를로드합니다. 이 코드는 내 Windows 응용 프로그램 내에서 완벽하게 작동합니다.IIS에서 Word 자동화

이 프로세스를 원격으로 시작할 수 있도록 MVC 웹 응용 프로그램을 만들었습니다. 웹 응용 프로그램은 동일한 코드를 사용하지만, 나는 애드 인로드 곳에는 부분도 실패한 :

오류 : 말씀이이 문서 서식 파일을 열 수 없습니다 : (C : \ 임시 \의 addin.dot)

을 진정한 0 :

  • 로드 사용자 프로필 진정한 :

    • 32 비트 응용 프로그램을 사용 : 웹 응용 프로그램은 관리자 권한과 다음과 같은 설정으로 응용 프로그램 풀을 사용하여

      누구에게 어떤 문제가있을 수 있습니까? 동일한 코드가 웹 서버에서 다르게 작동하는 이유는 무엇입니까?

      편집 : 작업 관리자는 프로세스라는 단어가 올바른 사용자 계정으로 시작된다는 것을 보여줍니다. Windows 응용 프로그램을 시작할 때 사용하는 계정과 같습니다.

  • 답변

    2

    웹 서버는 사용자 응용 프로그램을 실행하지 않습니다. COM 참조를 사용하기 때문에 라이브러리는 조작을 수행하기 위해 응용 프로그램을 실행해야합니다.

    문서 생성/읽기를 자동화하려면 DocX와 같은 라이브러리를 사용하는 것이 좋습니다. 이렇게하면 COM 참조 (interop 라이브러리)를 가져 오지 않고 파일 형식 자체로 직접 작업 할 수 있습니다.

    +0

    필자는 상용구, 빌딩 블록 등과 같은 normal.dot에서 다른 것들을 마이그레이션하는 데 사용합니다. 또한 이전 템플릿 (2003 단어)을 열어 매크로가 있는지 확인하고 새 템플릿 (* .dotx/* .dotm)으로 저장합니다. – Skuami

    +0

    사용자 (interop가 수행하는)가 필요하면 웹 서버에 액세스 할 수있는 사용자의 컨텍스트에서 실행되는 서버로 전환해야합니다. 그러나 IIS는 단어를 시작할 수 없습니다. –

    +0

    IIS가 단어와 같은 응용 프로그램을 실행하지 않는다는 것을 알고 있습니다. DocX와 같은 다른 라이브러리를 평가했지만 interoper를 사용하기로 결정한 특정 기능이 필요합니다. 웹 응용 프로그램은 마이그레이션 용도로 온라인에서 사용되며 한 명의 사용자 만 원격으로 실행됩니다. 나는 마이그레이션 프로세스에서 다른 것들도 수행하며, Active Directory 조작, 콘솔 애플리케이션 제외 등등의 모든 작업을 수행합니다. – Skuami