WebAPP,API调用Excel, Word,Bartender等DCOM, VS调试没问题,发布到IIS出错

Posted Hailiah

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WebAPP,API调用Excel, Word,Bartender等DCOM, VS调试没问题,发布到IIS出错相关的知识,希望对你有一定的参考价值。

  WebAPP,API调用Excel, Word,Bartender等DCOM, VS调试没问题,发布到IIS出错,类似如下

"Message": "An error has occurred.",
"ExceptionMessage": "Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error: 80070005 Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)).",
"ExceptionType": "System.UnauthorizedAccessException",

网上查了很多资料,也尝试了很多方法,原因应该是IIS调用DCOM用的用户名的权限问题,VS调试用的是本机系统账户,而IIS用的是Applicaiton Pool定义的账户,如果此账户没有相应启动DCOM的权限,那么就会出现Access 错误。

最后简单的解决方法,将Applicaiton Pool的Identity改正LocalSystem,然后在DCOMCNFG.exe的组件服务里将Excel或其他DCOM的应用的Identity改成interactive user,最然说这个设置会造成安全方面的问题,当时如果是内部用的话问题也不大。

当然也可以将其他账户配置成相应权限,道理上应该可以,当时尝试多次都不行,有时间再看看如下链接吧

http://www.cnblogs.com/zhongxinWang/p/3275154.html

http://bbs.csdn.net/topics/360144511

http://blog.csdn.net/aiya1229/article/details/7031727

https://forums.asp.net/t/1951549.aspx

https://stackoverflow.com/questions/17785063/retrieving-the-com-class-factory-for-component-error-80070005-access-is-de

还有,有些DCOM是32位的,在64位系统用DCOMCNFG组件里有可能看不到,需要用命令,MMC -32打开控制台,添加snap in,组件服务,应该可以看到。

以上是关于WebAPP,API调用Excel, Word,Bartender等DCOM, VS调试没问题,发布到IIS出错的主要内容,如果未能解决你的问题,请参考以下文章

用excel中的VBA,然后根据excel中单元格中内容,批量替换一个word的模板doc中的字符。字符有很多处。

求poi API 中文文档 最好是针对于word解析的

autpoi 1.4.3版本发布—Excel傻瓜式API,快速实现Excel导入导出Word模板导出

autpoi 1.4.3版本发布—Excel傻瓜式API,快速实现Excel导入导出Word模板导出

Autpoi 1.4.3版本发布—Excel傻瓜式API,快速实现Excel导入导出Word模板导出

为啥从 Word doc 调用宏时出现错误 1004,而不是从 Excel 调用?