我使用excel对象(COM组件)进行excel操作。它在我的电脑上工作正常,但当我将应用程序部署到我的Intranet时,我收到此错误:
由于以下错误,检索CLSID为{00024500-0000-0000-C000-000000000046}的组件的COM类工厂失败:80070005
我在我的web.config
中使用了Windows身份验证和impersonate = true。
我在组件服务中进行了所有设置,但仍然会出现相同的错误。
请帮忙
答案 0 :(得分:22)
我在部署应用时遇到了同样的错误。我从这个网站获得了解决方案:Component with CLSID XXX failed due to the following error: 80070005 Access is denied
以下是此解决方案:
在 DCOMCNFG 中,右键单击我的电脑,然后选择属性。
选择 COM证券标签。
在访问权限中,点击编辑默认值,然后将网络服务添加到其中并为其指定允许本地访问< / strong>许可。为&lt;做同样的事情Machine_name&gt; \ Users 。
在启动和激活权限中,点击修改默认值,然后将网络服务添加到其中并为其提供本地启动和本地激活权限。为&lt;做同样的事情Machine_name&gt; \ Users 。
*我使用了表单身份验证。
答案 1 :(得分:5)
如果您将 Windows 2008 Server 与 IIS7 一起使用,则可能需要解决另外一个问题。服务器可能会报告以下错误:
Microsoft Office Excel无法访问文件“c:\ temp \ test.xls”。有几个可能的原因:
解决方案发布在此处(查找用户Ogawa发布的文字):http://social.msdn.microsoft.com/Forums/en-US/innovateonoffice/thread/b81a3c4e-62db-488b-af06-44421818ef91?prof=required
答案 2 :(得分:4)
如果系统中存在过时的EXCEL.EXE
进程,您也会收到此错误(使用Task Manager --> Processes
标签查看这些进程。)
杀死所有这些实例,应用程序将正常运行。
答案 3 :(得分:3)
这对我有用: (来自msdn forum的解决方案)
转到控制面板 - &gt;管理工具 - &gt;组件服务 - &gt;计算机 - &gt; myComputer - &gt; DCOM配置 - &gt; Microsoft Excel应用程序。
右键单击以获取属性对话框。转到“安全”选项卡并相应地自定义权限。
在“启动和应用程序权限”中,选择“自定义”,“编辑”。添加调用应用程序的用户/组。
答案 4 :(得分:2)
如果它有助于某人:
我正在运行Windows 7 64位,我想注册一个32位的dll。
首先我尝试了:regsvr32并收到以下错误:
System.Runtime.InteropServices.COMException(0x80040154):由于以下错误,检索具有CLSID {A1D59B81-C868-4F66-B58F-AC94A4A7982E}的组件的COM类工厂失败:80040154。
然后我尝试通过组件服务(Run-&gt; DCCOMCNFG)(http://www.justskins.com/forums/difference-registering-dll-using-regsvr32-and-component-services-17280.html)添加应用程序,并出现以下错误:
System.UnauthorizedAccessException:由于以下错误,检索具有CLSID {A1D59B81-C868-4F66-B58F-AC94A4A7982E}的组件的COM类工厂失败:80070005。
解决它有很多链接,但对我有用的是: 控制台根目录 - &gt;组件服务 - &gt;计算机 - &gt;我的电脑 - &gt; COM +应用程序 - &gt; your_application_name - &gt;属性:“安全”选项卡:授权:取消选中“对此应用程序执行访问检查”。
我不知道它的作用。
答案 5 :(得分:0)
您描述的CLSID适用于Microsoft.Office.Interop.Excel.ApplicationClass。该类基本上通过InprocServer32启动excel.exe。如果您没有安装它,它将返回您上面收到的错误消息。
答案 6 :(得分:0)
对于IIS 8,我做的基本上和Monic一样。我在x64机器上运行我的应用程序作为自己的应用程序池1.在DCOMCNFG中,右键单击“我的电脑”并选择属性。
2.选择COM证券标签。
3.在“访问权限”中,单击“编辑默认值”并将iis apppool \ myapp添加到其中,并为其授予“允许本地访问权限”。对iis apppool \ myapp
执行相同的操作4.在启动和激活权限中,单击编辑默认值并将iis apppool \ myapp添加到其中,并为其授予本地启动和本地激活权限。对iis apppool \ myapp执行相同的操作。
另外,我必须在C:\ Windows \ SysWOW64 \ config \ systemprofile \ Desktop下创建文件夹,并为iis apppool \ myapp提供读/写权限
答案 7 :(得分:0)
我能理解你的痛苦。在我的情况下,通过执行以下步骤解决了错误:
希望这有帮助。
答案 8 :(得分:0)
我已在IIS 8.5(Windows Server 2012 R2)服务器中完成以下操作,并且在我的情况下无需重启即可工作:
在IIS中选择连接到应用程序的应用程序池
然后右键单击->高级设置->流程模型->选择本地系统,而不是推荐的 ApplicationPoolIdentity
并确保C:\ Windows \ SysWOW64 \ config \ systemprofile \ desktop具有足够的用户访问权限。
刷新与此池连接的网站链接
答案 9 :(得分:0)
尝试从Act导出csv文件时遇到相同的错误!脱颖而出。我发现的一种解决方法是运行Act!作为管理员。
这告诉我这可能是某种权限问题,但此处的先前答案都无法解决该问题。我尝试运行DCOMCNFG并更改整个计算机上的权限,还尝试仅更改Excel组件上的权限,但未在Windows 10 Pro PC的DCOMCNFG中列出。
也许这种解决方法可以帮助某人,直到找到更好的解决方案为止。