COM CLASS库。 ASP.net MVC DLL

时间:2015-11-16 10:21:51

标签: c# asp.net asp.net-mvc registry

有没有办法在IIS服务器部署的ASP.net MVC上运行COM或Interop?

我创建了一个 MVC网站,其中包含对扫描仪计算机的自定义女佣Interop COM的引用。

它适用于VS上的调试模式,但是当我尝试在IIS上部署它并访问它时。它给了我Retrieving the COM class factory for component with CLSID {3FEDB614-C25B-448C-AED3-2D38A6C95765} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).

Thing是,它自己的dll已经安装在我的机器上,我认为它正在调试模式,因为VS的运行方式不同或因为我有一个DLL的引用需要的。

但是在IIS部署中。发生错误。任何想法?

我的主要目标是,在本地网络上运行该网站,每个人都可以与安装了扫描仪的网站进行通信。

简单的想法,但对我来说很难实现。我甚至不确定,如果我正在进行的呼叫将在主持人而不是客户端进行。

2 个答案:

答案 0 :(得分:1)

看起来IIS应用程序Bin文件夹没有Interop dll,复制Interop dll,它的名称为Interop.[YourCom].dllYourCom只不过是原创COM。因此,如果COM名称为MyCom.dll,则Interop应为Interop.MyCom.dll。如果它在VS上的调试模式下工作,那么它应该在VS application Bin文件夹中可用。

Interop dll的先决条件:COM应该在系统中注册。

答案 1 :(得分:0)

最终,即使手动注册,在我的情况下也没有帮助,不要问我没有想法。

我通过让VS工作室项目设置/构建选项卡/ Register COM复选标记执行其余操作来解决此问题。但诀窍是在管理员中运行VS,否则您将出错。最后一步是右键单击bin文件夹并选择添加到项目。不确定为什么没有它就没有工作,因为我很确定它不需要在当前项目中,因为IIS将在bin文件夹中重定向。

Interop名称已经应用但是像Maiti所说的那样,需要它。