与ASP.NET的互操作’80040154类未注册’
我在运行IIS6的Windows XP Pro SP2 x64计算机上收到以下错误:
System.Runtime.InteropServices.COMException: Retrieving the COM class factory for component with CLSID {3C250CBD-6CC9-11D2-9457-00004B48467E} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).
尝试实例化COM互操作对象时会发生这种情况。
奇怪的是,这可以在与应用程序池(AD中的用户)相同的帐户下运行的控制台应用程序中正常工作。 即两者都使用UserX,所以它似乎不是一个明显的权限问题。
其他人有类似的东西吗?
确保您的应用程序池是32位(或支持32位应用程序)或您的COM控件支持64位应用程序。 最有可能的是,您的本机COM库是32位,默认情况下您的池运行64位工作程序,无法加载32位COM DLL。
如果在IIS下运行,它是真的使用“UserX”,还是使用“Guest”,“ASP.NET”或“IWAM_USER”或类似的其他帐户。 此外,如果从IIS调用它,您可能需要检查权限…不仅在文件级别,而且在机器的COM配置级别。
上次我不得不处理这个,我会这样做
开始 – >运行 – > DCOMCNFG
或者只是提出组件服务。
然后展开组件服务 – >计算机 – >我的电脑 – > DCOM配置,然后向下滚动到您尝试使用的COM对象。 右键单击它并且有多个abs …身份是它将被启动的那个…你可以覆盖它以放入特定用户“绕过”假定的“默认”。 对于仅测试,我会设置一个限制较少的帐户(高级用户,不一定是管理员,但最后尝试),看看是否有帮助。
此外,在“安全”选项卡上,还有可以启动/激活谁以及谁可以“访问”它的选项。 您可能需要确保您的帐户在此范围内有效。
上述就是C#学习教程:与ASP.NET的互操作’80040154类未注册’分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/987407.html