簡體   English   中英

IIS 64bit Com dll

[英]IIS 64bit Com dll

嗨,我正在開發一個應用程序,我需要通過Web服務訪問一個com DLL。

我在win 7上運行IIS 7並使用vs2010進行開發。

在開發環境中一切正常但是當我在本地主機上發布到IIS進行進一步測試時,我收到以下錯誤:

System.Runtime.InteropServices.COMException:由於以下錯誤,檢索具有CLSID {29345FBB-4DE7-4838-9464-5A886B775677}的組件的COM類工廠失敗:80040154。

我查了一下,發現如果我將我的應用程序池設置更改為“啟用32位應用程序”為true。 這將繞過錯誤,我做了這個,現在我收到以下錯誤:

無法將“ComName.ComClassClass”類型的COM對象強制轉換為接口類型“ComName._ComClass”。 此操作失敗,因為對IID為“{003B251B-6F4E-42A5-8111-11DB41F1D14A}”的接口的COM組件的QueryInterface調用由於以下錯誤而失敗:不支持此類接口(HRESULT異常:0x80004002(E_NOINTERFACE)) 。

我完全迷失在哪里看,用Google搜索它似乎無法找到答案是否有人知道發生了什么?

COM dll需要在IIS服務器上注冊。 安裝安裝該COM dll的軟件或使用regsvr32.exe“C:.. \\ yourdll.dll”自行手動完成


[窗口標題] RegSvr32

[內容]

要注冊模塊,您必須提供二進制名稱。

用法:regsvr32 [/ u] [/ s] [/ n] [/ i [:cmdline]] dllname

/ u - 取消注冊服務器

/ s - 沉默; 不顯示消息框

/ i - 調用DllInstall傳遞一個可選的[cmdline]; 與/ u一起使用時調用dll uninstall

/ n - 不要調用DllRegisterServer; 此選項必須與/ i一起使用


如果你認為它已經注冊,那么取消注冊並重新注冊,也許做一個iisreset :)

示例(假設您的dll直接在C:\\中):

C:> regsvr32.exe / u thecomdll.dll

C:> regsvr32.exe thecomdll.dll

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM