我可以創建JS的ActiveX(HTML是由IE運行結束):爲什麼我不能在.NET創建COM對象,但在JavaScript
var o = new ActiveXObject("MyProgId");
但我不能在創建它的實例。 NET:
var t = Type.GetTypeFromProgId("MyProgId");
返回null。當我嘗試「對COM」在VS加我得到這樣的錯誤:
"Could not add a reference to {MyTypeLib_CLSID}\1.0
Library not registered. (Exception from HRESULT: 0x8002801D (TYPE_E_LIBNOTREGISTERED))"
當我在註冊表中搜索MyTypeLib_CLSID
我找到鑰匙,但HKCR\Wow6432Node\TypeLib
下注冊表編輯器無法打開它。它抱怨Error Opening Key, The system cannot find the file specified
。但後來我搜索下,註冊表找到HKCU\Software\Classes\TypeLib
並在那裏成功打開。
我也嘗試通過Type.GetTypeFromCLSID
創建一個對象,其結果相同(返回null)。
這個COM有什麼問題?
P.S.此COM是Lync Web App插件(「ReachAppShAx.AppSharing」/ {B89F72B4-7801-4F45-97AE-F9A0CDBB6213})
更新:所有這些事情都發生在本地:js/html正在瀏覽器中作爲html-文件,.net是一個控制檯應用程序。
您嘗試實例化的ActiveX對象是否安裝在**服務器**上,這是ASP.NET代碼執行的地方? – 2011-04-14 07:36:54
*「但我無法在.NET中創建它的實例:」*您能澄清一下嗎?你在哪裏/如何運行.Net代碼?正如Darin指出的那樣,如果您使用的是ASP.Net,那麼.Net的.Net部分會在服務器*上運行*,而您似乎在客戶端的IE中使用另一部分的JavaScript。 – 2011-04-14 07:41:37
不,不是,都是本地的。在瀏覽器中使用JS的Html在本地打開(作爲html文件)。 .NET程序是一個控制檯應用程序。 – Shrike 2011-04-14 08:19:04