现在的位置: 网页制作教程网站制作经验 >正文
服务器问题和教程

检索COM类工厂组件时失败,原因是出现以下错误:80040154

发表于2016/11/21 网站制作经验 0条评论 ⁄ 热度 9,766℃

问题背景:需要用jmail组件收发邮件,winform程序,开发环境是windows2003,正式部署的服务器是64位的windows2008。

问题详情:在win2003开发环境下一切都是好的,但是部署到正式系统中.程序刚开始,初始化一个POP3Class的对象的时候就报错:检索 COM类工厂中 CLSID 为 {F812B147-0E26-4222-8EE4-9F753CD2B39C} 的组件时失败,原因是出现以下错误: 80040154。

程序池启用32位

我的注册过程:

  • 先下载jmail.dll放到服务器的system32下面。cmd--regsvr32 jmail.dll 显示注册成功。
  • 在项目中应用刚才注册过的jmai。

我尝试过的解决办法:

  • 试试在syswow64下面重新注册,项目中重新引用,问题依旧。
  • 网上说可能是组件的权限问题,我在组件服务,DCOM中,试图找到这个组件,但是没有找到编号为F812B147-0E26-4222-8EE4-9F753CD2B39C的组件。
  • 网上说需要64位操作系统设置启动32位模式。在cmd中输入如下命令:cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64结果报错,找不到inetpub\adminscripts\adsutil.vbs 文件。我网上下载了一个文件放到相应目录。执行后返回错误信息。后来再查资料,发现这是2003系统的解决方案(我这里是2008的)。

正确的解决办法:winform的话,把程序直接编译成x86而不是any cpu试一试。在项目属性的build页Platform target设置,如果用Administrator用户运行的话,应该不会有权限问题。

如果是是IIS7的话,要设置application pool的32bit模式。应用程序池中启用32位应用程序改为True。

通过以上的操作,再碰到检索COM类工厂组件时失败,原因是出现以下错误:80040154的问题就会迎刃而解。

相关阅读:ASP利用jmail发送邮件PHP中如何使用Jmail组件发送邮件

  • 暂无评论