pywintypes.com_error: (-2147024891, ‘拒绝访问。‘, None, None)解决方法,吐血总结

远程用户调用win32com.client.Dispatch('Word.Application')报错:pywintypes.com_error: (-2147024891, '拒绝访问。', None, None)。但本地访问没有问题。主要原因是:服务器上的Word.Application设置问题,不允许远程调用。解决方法如下:

解决方法之前的背景知识:win32com.client.Dispatch调用参数“Word.Application”是对应注册表中“计算机\HKEY_CLASSES_ROOT\Word.Application”,所以先要检查注册表中是否有这个配置。

1、服务器上,按win+r,输入“dcomcnfg”,进入组件服务,选择“DCOM配置”,找到“Microsoft Word 97 - 2003 Document”,右键属性,选择“标识”页,选择“交互式用户”;然后选择“安全”页,设置“启动和激活权限”为“自定义”,点击编辑,添加IIS_IUSRS(计算机名)、NETWORK SERVICE用户(如果以上2个用户添加后还不行,添加Everyone用户),勾选全部权限。确定退出,同样设置“访问权限”和“配置权限”。再选择“常规”页,“身份验证级别”选择“无”。确定退出。在服务组件列表中找到“Microsoft Word Application”,做同样设置。但不同的是,右键属性,选择“标识”页,选择“下列用户”,浏览用户,选择本机管理员权限的用户,输入登录密码。这步主要是针对有时远程访问报错:pywintypes.com_error: (-2147467238, '因为配置标识不正确,系统无法开始服务器进程。请检查用户名和密码。', None, None)。

另外,这一步会出现在服务组件中找不到“Microsoft Word 97 - 2003 Document”和“Microsoft Word Application”组件,是因为没有按照Word的64位版,组件服务默认显示的是64位组件。这是可以卸载office Word,重新安装64位版本。

2、上面这步基本就可以解决win32com.client.Dispatch('Word.Application')调用报错的问题了。但后续会调用

wd.Documents.Open(path + doc_file, ReadOnly=True)

报错:pywintypes.com_error: (-2147352567, '发生意外。', (0, 'Microsoft Word', '很抱歉,找不到您的文件。该项目是否已移动、重命名或删除?\r (D:\\...\\XXXXXX..)', 'wdmain11.chm', 24654, -2146823114), None),其实这是路径的问题,文件路径增加下面黄色部分即可解决。

wd.Documents.Open(path+'\\'+ doc_file, ReadOnly=True)
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值