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,组件服务,应该可以看到。

原文地址:https://www.cnblogs.com/hailiah/p/8306017.html

时间: 2024-08-27 08:33:23

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

c#动态生成word,在本地可以执行,但发布到iis上出错解决方案

报错点: Microsoft.Office.Interop.Word.DocumentClass.SaveAs 解决方案: 1.在"开始"->"运行"中输入dcomcnfg.exe启动"组件服务": 2.依次双击"组件服务"->"计算机"->"我的电脑"->"DCOM配置": 3.在"DCOM配置"中找到"Micr

c# 调用EXCEL在VS上能正常运行,部署在IIS上不能实现,在VS中运行页面和发布之后在IIS中运行的区别

发现一篇文章,很好,解决了这个问题:感谢原博主!特此做个笔记. 地址:http://www.cnblogs.com/zhongxinWang/p/3275154.html 发布在IIS上的Web程序,调用服务器的COM组件 场景大致是这样的,在工厂中分布着许多的PDA点,这些PDA点都要进行实时的扫描--打印操作.实现方法是采用网络打印机,然后服务器安装驱动,管理着所有的打印机.然后服务器,发布一个WebService,给每个PDA上的程序进行调用,PDA在要进行打印的时候,就掉用这个服务,传递

阿里云api调用做简单的cmdb

阿里云api调用做简单的cmdb 1 步骤 事实上就是调用阿里api.获取可用区,比方cn-hangzhou啊等等.然后在每一个区调用api 取ecs的状态信息,最好写到一个excel里面去.方便排序排版. 2 示意图 3 源代码 https://github.com/gqdw/cmdb/tree/master

【Qt系列】基于Qt的词典开发系列<八>--用户登录及API调用的实现

在上一篇文章<调用网络API>中,我只讲述了如何直观的使用API接口以及调用API后返回的结果,本文则从程序实现的角度来实现API的调用,当然本程序的实现也是借助于扇贝网的API接口文档http://www.shanbay.com/help/developer/api/. 由API文档可知,要想调用其API,必须先注册.因此,我就注册了,账户名为nineheadedbird, 密码为123456.显然,我们要查词,首先必须得登录该账户.如果用浏览器,那就很简单,只需单纯的输入用户名和密码就可以

Facebook Oauth2.0 API调用方法

这些天搞了下Facebook API的东东,在官方网站下弄了一些接口,下面简单的把facebook的调用流程以及常用接口书序一下 :-)  当然在使用facebook api之前要有facebook账号以及在facebook上注册一个自己的应用  1.登录鉴权 https://graph.facebook.com/oauth/authorize?client_id=8888888888888&redirect_uri=http://www.mywebsite.com&scope=user_

PHP实现人人OAuth登录和API调用

人人开放平台给出的PHP SDK,个人感觉写的不怎么样,而且在我的电脑上运行不出来,总是113错误,查文档竟然还没有这个错误码,于是只好自己按照官方给出的文档,用PHP自己实现了一下.代码如下文,没有作封装,只是走了一下流程.如果是仅仅用于人人连接这样的登录验证和简单的API调用,也不是很有必要封装.作为使用人人API的一个PHP示范吧.自己写代码的过程中也参考了官网的SDK代码和DEMO代码. 说明: 1.使用了HttpClient类发起Get和Post请求,文件下载地址http://scri

vb调用excel方法详解及操作相关操作命令大全

如果你要在VB中要想调用Excel,需要打开VB编程环境"工程"菜单中的"引用"项目,并选取项目中的"Microsoft Excel 11.0 object library"项.由于你的Excel版本不同,所以这个选项的版本号也是不同的. 因为EXCEL是以层次结构组织对象的,其对象模型中含有许多不同的对象元素.    第一层:Application对象,即Excel本身:    第二层:workbooks对象集,指Excel的工作簿文件: 第三

翻译api调用

<?php function language($value,$from="auto",$to="auto") { $value_code=urlencode($value); #首先对要翻译的文字进行 urlencode 处理 $appid="YourApiKey"; #您注册的API Key $languageurl = "http://openapi.baidu.com/public/2.0/bmt/translate?cl

Ruby调用Excel相关的函数

require 'win32ole'myexcel = WIN32OLE.new("excel.application")#WIN32OLE.open 方法打开用例文件,用Call sub方法(如果有的话) 来调用Excel中的静态检查的宏myexcel.visible=truemywbk = myexcel.Workbooks.Add()mywst= mywbk.Worksheets(1)mywst.Range('A1:D1').value =['1','2','3','4']myw