8000401a错误解决方案(Office Word,Excel,PowerPoit应用程序无法访问)
最近开发需要用到Excel和Word编程,开发环境是VS2010和Office2010,部署的时候出现了一些错误如下:
检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 8000401a。 的错误,
搜索了一下解决方法,总结如下:
1,增加虚拟权限:
在web.config里面增加
<identity impersonate="true" userName="administrator" password="password"/>的键值;要求administrator具有管理员权限,这种方案使用后确实可行,可是不利于部署,因为有经验的人都知道把一个最高权限的服务器帐号密码公开显示在配置文件上有什么后果。
2,增加Com组件的交互式访问权限:
这也是网上搜索率最高的一种方式,运行“DCOMCNFG”,找到Microsoft Word 97-2003 、 Microsoft Excel 应用程序 、Microsoft PowerPoit 应用程序 文档 这些组件的交互式访问权限,详情可以参见:http://support.microsoft.com/kb/288366
3,增加Com组件特定用户的访问权限。
建立一个所需的帐号(例如test),权限为Power User或者User;
用此帐号运行一次word或者excel(确保有访问权限);运行DCOMCNFG,在Dcom组件里面找到Microsoft Excel 应用程序或者Microsoft Word 文档(和前面一样)-属性-标识里面选择“特定用户”,然后输入前面建立的帐号和密码就可以了
在有的机器上测试还需要在前面的安全标签里面添加这个账号的启用和访问权限.当然直接用自己登陆的帐好也是可行的
操作整个流程如下:
1、增加虚拟权限,检查web.config中是不启动用户权限访问。
<identity impersonate="true" userName="administrator" password="password"/>
2、运行dcomcnfg打开组件服务,
依次展开"组件服务"->"计算机"->"我的电脑"->"DCOM配置" ,找到"Microsoft Excel应用程序"或"Microsoft Word应用程序",右键打开属性对话框,点击"标识"选项卡。按图操作如下:
如果使用第三套方案,可以直接指定一个用户名:
注意:如果这里启动不了用户,可能是你没有启动Server服务,启动一下就可以了。这个很容易忽略的,因为开发者的电脑都会启动,但服务器为了安全不一定启动哦。
按照以上方法基本上能解决您遇到的这个8000401a错误。