【发布时间】:2020-09-15 15:23:02
【问题描述】:
我的 Web 应用程序使用 COM 库,我使用以下代码:
Type headType = Type.GetTypeFromProgID("Eapi.Head");
dynamic head = null;
head = Activator.CreateInstance(headType);
而且我在理解工作 IIS 方面遇到了一些问题。当我在 VisualStudio 中调试我的 webapp 时,运行 IISExpress 并且一切正常。但在 IIS 上发布项目后,应用程序找不到 COM 库。
HRESULT:0x80040154 (REGDB_E_CLASSNOTREG)
IIS 在我开发项目的同一台计算机上。
我注册这个 dll 有两种方式:
C:\WINDOWS\system32>regsvr32.exe c:\EOS\Delo\API\Eapi.dll
C:\WINDOWS\system32>cd ..
C:\Windows>cd SysWOW64
C:\Windows\SysWOW64>regsvr32.exe c:\EOS\Delo\API\Eapi.dll
C:\Windows\SysWOW64>
【问题讨论】:
-
应该是 32/64 位问题,按照所述注册两次对我来说没有意义 - 您仍将注册其中一个位。您应该能够在 IIS 池设置中切换位数(切换“启用 32 位应用程序”高级设置)。
-
@RomanR. 天哪!是的!是工作。我的错。我第三天解决了这个问题,不知道“出了什么问题”。非常感谢!