2012-05-21 2 views
4

안녕하세요, 저는 웹 서비스를 통해 com DLL에 액세스해야하는 앱을 개발하고 있습니다.IIS 64 비트 Com dll

저는 win7에서 IIS 7을 실행하고 vs2010을 사용하여 개발하고 있습니다.

모든 개발 환경에서 잘 작동하지만 난 내 로컬 호스트에서 IIS에 게시 갔을 때 나는 다음과 같은 오류 얻고 있었다 약간의 추가 시험 수행 :이 고개를 발견

System.Runtime.InteropServices.COMException: Retrieving the COM class factory for component with CLSID {29345FBB-4DE7-4838-9464-5A886B775677} failed due to the following error: 80040154.

을 그 나는 경우 내 응용 프로그램 풀 설정을 "32 비트 응용 프로그램 활성화"로 변경했습니다. 이 오류를 피해 갈 것이라고, 내가 이런 짓을하고 지금은 다음과 같은 오류가 무엇입니까 :

이 이 가 되세요이 그것에게 답변을 찾을 수 없습니다 봤 볼 수있는 위치에 관해서는 필자가 완전히 손실

Unable to cast COM object of type 'ComName.ComClassClass' to interface type 'ComName._ComClass'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{003B251B-6F4E-42A5-8111-11DB41F1D14A}' failed due to the following error: No such interface supported (Exception from HRESULT: 0x80004002 (E_NOINTERFACE)).

을 무슨 일이 일어나고 있는지 아는 사람?

+1

웹 서버 (regsvr32.exe)에 COM DLL을 등록 했습니까? –

답변

3

COM dll을 IIS 서버에 등록해야합니다. 수동으로 regsvr32.exe를 사용하여 COM DLL이 있음을 설치하는 소프트웨어를 설치하거나 자신 할 "C를 : .. \ yourdll.dll"


[창 제목] 같은 RegSvr32

[내용]

모듈을 등록하려면 이진 이름을 제공해야합니다.

용도 :에 regsvr32 [/ U] [/ s]/N]/I [:있는 CmdLine] Dllname을

/U - 서버 등록 취소

/s - 자동; 아무 메시지 상자도 표시하지 않습니다.

/i - DllInstall을 호출하여 선택적 [cmdline];/u가 dll 제거를 호출 할 때 사용됩니다.

/n - DllRegisterServer를 호출하지 마십시오. 이 옵션과 함께 사용해야합니다/내가


당신은 이미 그것을 재 등록, 어쩌면 iisreset을 :)

예 (당신의 DLL을 가정하는 것은에서 바로 할 등록을 취소 한 후 등록 생각하는 경우 C : \)

C> REGSVR32.EXE/U thecomdll.dll

C> REGSVR32.EXE thecomdll.dll

+0

등록을 취소하고 다시 등록 해 주셔서 감사합니다! – Craig

관련 문제