问题背景:需要用jmail组件收发邮件,winform程序,开发环境是windows2003,正式部署的服务器是64位的windows2008。
问题详情:在win2003开发环境下一切都是好的,但是部署到正式系统中.程序刚开始,初始化一个POP3Class的对象的时候就报错:检索 COM类工厂中 CLSID 为 {F812B147-0E26-4222-8EE4-9F753CD2B39C} 的组件时失败,原因是出现以下错误: 80040154。
我的注册过程:
- 先下载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组件发送邮件
声明:如需转载,请注明来源于www.webym.net并保留原文链接:http://www.webym.net/jiaocheng/226.html