C#生成Excel出现8000401a的错误的另一种解决办法。「建议收藏」

2022-09-23 11:13:11 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

网上能搜到的解决办法,常见的就是以下3种,比如参考这个博客 https://www.cnblogs.com/gavindou/archive/2012/08/29/2661757.html 1,增加虚拟权限:

在web.config里面增加

的键值;要求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和第2种还是会随机出现8000401a的错误,第3种方法比较稳定,我把Excel的标识选择了administrator账号,就再也不出现了,只是如果远程桌面到服务器上,然后使用程序调用Excel也不会出现窗口了,直接打开Excel也会报错(但是不影响使用)。 我现在使用了另外一种办法,**同样运行DCOMCNFG,在Dcom组件里面找到Microsoft Excel 应用程序,点击属性,在常规里面把身份验证级改为“无”。彻底不要求验证身份了。 ——20200319更新,经过3天的测试,身份验证改为“无”还是会随机出现8000401a的错误。最后我还是换回“把Excel的标识选择了administrator账号”这个解决方案了

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/171403.html原文链接:https://javaforall.cn

0 人点赞