首页 > 代码库 > 8000401a错误解决方式(Excel)

8000401a错误解决方式(Excel)

前一阵子做开发须要用到Excel和Word编程,本人用的是Vista系统,开发环境是VS2005和Office2007,測试无不论什么问题,但是到部署的时候出现了一些令人非常头痛的问题,老是会出现比如:

检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败,原因是出现下面错误: 8000401a。
的错误,在网上查询了很多资料,大多是二种解决方式:

1,添加?虚拟权限:

在web.config里面添加?

<identity impersonate="true" userName="windowsloginid" password="password"/>的键值;要求windowsloginid具有管理员权限,这样的方案使用后确实可行,但是不利于部署,由于有经验的人都知道把一个最高权限的server帐号密码公开显示在配置文件上有什么后果。所以这样的方案不可行。那么就牵涉到另外一种方案。

2,添加?Com组件的交互式訪问权限:

这也是网上搜索率最高的一种方式,执行“DCOMCNFG”,找到

Microsoft Excel 97/2000/2002 - Microsoft Excel 应用程序
Microsoft Word 2000/2002 - Microsoft Word 文档  这些组件的交互式訪问权限,详情能够參见:

http://support.microsoft.com/kb/288366

这样的方案应该是可行的,但是我在我自己的机器上一级server上试验过非常多遍都不行,最后我试着用特定的用户来訪问,假设细分的话,这里能够算为第三种解决方式了^_^

3,添加?Com组件特定用户的訪问权限。

这才是我今天说的重点,也是帮我攻克了实际难题的一重解决方式,简略的说能够这么做:

建立一个所需的帐号(比如test),权限为Power User或者User;

用此帐号执行一次word或者excel(确保有訪问权限);

执行DCOMCNFG,在Dcom组件里面找到Microsoft Excel 应用程序或者Microsoft Word 文档(和前面一样)-属性-标识里面选择“特定用户”,然后输入前面建立的帐号和password就能够了

 添加?组件訪问权限

在有的机器上測试还须要在前面的安全标签里面加入?这个账号的启用和訪问权限.当然直接用自己登陆的帐好也是可行的



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1756670

 

8000401a错误解决方式(Excel)