2009-06-23 2 views
0

Windows 2003 64 비트 (32 비트 모드에서 IIS를 실행 중입니다)를 실행하는 서버에서 C# ASP.NET을 사용하여 2003 interop을 수행하고 오류 메시지가 표시되도록하려고합니다. :ASP.NET에서 64 비트 Windows를 사용하는 Office Interop

컴퓨터 기본 권한 설정은 CLSID {00024500-0000-0000-C000-000000000046}의 COM 서버 응용 프로그램에 대한 로컬 활성화 권한을 사용자 도메인 \ 사용자 이름 SID (SXX-XX-XXX- XXXX-XXX-XXXXX). 이 보안 권한은 구성 요소 서비스 관리 도구를 사용하여 수정할 수 있습니다.

아무도 내가이 작업을하기 위해 무엇을 바꾸어야하는지 알고 있습니까? 도움을 주셔서 감사합니다.

EDIT - 이것은 32 비트 서버에서 정상적으로 작동합니다.

EDIT 2 - 아무도 좋아하지 않는 것처럼 보이지만 다른 요구 사항이 있는지는 잘 모르겠습니다. 당신이 생각할 수 있다면, 나는 또 다른 질문을 열었다. alternative-to-office-interop-for-document-generation

+0

을 소유하고 있습니다. 그것은 잘 작동하는 것처럼 보였지만, 해킹을 문제로 확인한 방식으로 아직 해체되지 않은 해킹이었습니다. –

답변

0

내가 답을 찾았습니다. regedit에서 문제 GUID를 검색하십시오. 그러면 구성 요소의 이름과 구성 요소 서비스의 GUID라는 두 가지 값이 포함 된 키가 나타납니다.

+0

여기에서하는 작업을 기반으로 솔루션을 배포하지 마십시오. 해킹 일 뿐이며 해킹입니다. – tomfanning

+0

정말. 계속하기 전에 http://support.microsoft.com/default.aspx/kb/257757을 참조하십시오. –

+0

이것은 몇 년 전에 작성되었으며 해킹은 이제 분명히 존재하지 않는 대안보다 우선합니다. 알고 계시다면 http://stackoverflow.com/questions/1039451/alternative-to-office-interop-for-document-generation에서 알려주십시오. –

0

AppPool을 더 많은 Indentity (AppPool을 오른쪽 클릭하고 Identity 탭을 선택)에서 실행하도록한다.

2

서버 환경에서 호출 할 때 Office 응용 프로그램이 제대로 작동하지 않습니다. COM 인터페이스는 데스크톱 응용 프로그램의 자동화가 아닌 데스크톱 자동화를위한 것입니다. 당신이 일하도록하기 위해하는 일은 해킹에 기반한 해킹과 관련이 있으며, 실패 할 운명입니다.

이렇게하면 서버 응용 프로그램에서 라이센스를 실행할 수있는 라이센스가 부여되지 않습니다.


수정 : KB 문서 Considerations for server-side Automation of Office 실제로 클라이언트가 모든 라이센스가있는 경우에만 당신이 사용 Office 제품의 서버 쪽 자동화에 대한 라이센스를 말할 않습니다 기술적 인 문제 외에

, 라이센스 문제도 고려해야합니다. 현재 라이선스 지침에 따라 Office 응용 프로그램이 클라이언트 요청을 처리하기 위해 서버에서 사용되는 것을 방지합니다. 서버 측 자동화를 사용하여 라이센스가없는 워크 스테이션에 Office 기능을 제공하는 것은 최종 사용자 사용권 계약 (EULA)의 적용을받지 않습니다.

한편 KB 기사에는이 작업을 수행하지 않는 많은 이유가 나와 있습니다. 그들은 다음과 같습니다 :

  • 사용자 신원
  • 는 복원력과 안정성
  • 는 서버 측 보안

나는 사람이 KB 기사를 추천 바탕 화면

  • 재 입력 및 확장 성
  • 상호 작용 Office 제품의 서버 측 자동화를 고려합니다.

  • +0

    고객에게 사무실 라이센스가있는 경우 라이센스가 부여됩니다. –

    +0

    해당 위치에 대한 링크를 게시하십시오. CAL이 아닌 Office 제품에 대한 서버 라이선스가 없다는 것을 알고있었습니다. –

    +0

    http://support.microsoft.com/default.aspx/kb/257757 –

    1

    존 손더스 (John Saunders)와 마찬가지로 라이선싱 문제는 제쳐두고 서버 측 제대로 작동하는 Office 자동화를 얻지 못할 것입니다.

    동일한 최종 결과를 얻기 위해 활용할 수있는 OpenXML SDK를 확인하십시오. 특히 DocumentReflector가 도움이 될 것입니다.

    http://blogs.msdn.com/alspeirs/archive/2008/12/09/generating-documents-with-c-open-xml-and-the-document-reflector.aspx

    http://www.microsoft.com/downloads/details.aspx?FamilyID=c6e744e5-36e9-45f5-8d8c-331df206e0d0&DisplayLang=en

    +0

    감사하지만 2003 형식이 필요합니다. –

    0

    다른 언급했듯이 서버 환경에서 COM Interop을 사용하는 것은 Microsoft에서 지원하지 않습니다.

    그렇다면 ASP.NET, WinForms, 콘솔 응용 프로그램 중 무엇을 말하는지 또는 ???을 지정하지 않았습니까? 콘솔 응용 프로그램을 빌드하고 Visual Studio 구성 관리자의 대상 CPU를 모든 CPU 대신 x86으로 설정하면 작동하는 것을 알 수 있습니다. 이렇게하면 응용 프로그램이 64 비트 서버에서 32 비트 모드로 실행됩니다. 물론, 권한 문제와 같은 여러 가지 문제가 여전히 남아 있습니다.

    은 W2K3 64 비트 및 W2K8 64 비트 환경에서 테스트되고 지원됩니다.

    면책 조항 : 나는 당신이 32 비트 서버에서 잘 작동했다 말하지만, 그 정확한 아니다하는 SpreadsheetGear LLC