项目中相信大家经常会遇到导出Word、Excel等需求,在实际开发环境中,一般不会出现什么问题,但当发布到IIS上后可能会遇到各种各样的问题,一般都是权限的问题。前几天把公司项目发布后,出现Word导出失败的问题,查看日志,报的就是80070005拒绝访问的错误,但当使用Kestrel启动的时候,就没有这个问题,只是在IIS上出现了这个错误,IIS权限的问题,也应该是大家经常会遇到的问题了。
80070005详细错误为检索Com类工厂中CLSID为{xxxx-xxxx-xxxx-xxxx}组件时失败,解决方法就是配置服务器中的Com组件,添加相应的权限。
1、打开运行->输入命令dcomcnfg->组件服务->计算机->DCOM配置->Microsoft97-2003 Document
2、或者通过控制面板->管理工具->组件服务->计算机->DCOM配置->Microsoft97-2003 Document
使用以上方法很多时候我们无法从DCOM配置中找到Microsoft97-2003 Document配置选项,这时候可以使用
comexp.msc -32命令,打开组件服务,就可以找到该选项了,也有的说是使用mmc -32命令也可以找到该选项,但是我在win10上使用该命令时打开的是一个空的控制台,需要自己添加控制选项。不论怎样,只要找到Microsoft97-2003 Document选项即可。
配置:
右键该选项属性,选择安全->启动和激活权限->自定义,添加NETWORK SERVICE用户,并勾选本地激活选项,点击确定。同时将访问权限设为自定义,并添加NETWORK SERVICE用户。配置完COM组件后,还是无法导出,这时需要配置IIS的权限,选择发布的项目使用的应用程序池,右键属性->高级设置->进程模型,标识选项默认的是使用ApplicationPoolIdentity,我们将其改为自定义账户,添加服务器的用户名和密码即可,最后重启IIS,问题得以解决。
扫描二维码关注我的公众号,共同学习,共同进步!
原文地址:https://www.cnblogs.com/Allen0910/p/9191893.html