开放Excel错误:System.Runtime.InterOpservices.Comexception(0x80080005):通过CLSID检索COM类工厂 我有一个C#.NET Web应用程序。 我希望用户单击网页上的一个按钮,服务器打开Excel电子表格并将数据写入其,以及用户保存文档。 这在本地使用V ...

问题描述 投票:0回答:2

我已经研究并发现了大量答案,以打开DCOMCONFIG,并将用户添加到Microsoft Excel应用程序中。 我的网站设置为通过安全性,所以我添加了自己。我是服务器上的管理员,所以我确保管理员可以访问;我还添加了网络服务的应用程序池默认值;还有ASP.NET机器帐户;而且,以防万一添加了该应用程序在连接到数据库时使用的帐户。 我仍然遇到完全相同的错误。 我的服务器是64位,Office 2007,IIS 7。 我的代码是:

{ try { Excel.Application xXL = null; Excel.Workbook xWB = null; Excel.Worksheet xSheet = null; xXL = new Excel.Application(); } catch (Exception ex) { Response.Write(ex.ToString()); } }

在dcomcnfg中,右键单击我的计算机,然后选择属性。

to组件 /mycomputer /dcomconfig

go到Microsoft Excel应用程序属性安全

在启动和激活权限中,单击“ custamize”并向它添加网络服务,并授予其“本地启动”和“本地激活”许可。给予与ACESS权限和合作许可相同
按OK,那就是这样。我现在可以运行我的应用程序。
c# .net excel
2个回答
5
投票
forfice Automation-不建议使用Microsoft
    支持这些Excel.appel和Excel.workbook对象的使用。看:
  1. Microsoft目前不建议,也不支持Microsoft Office应用程序从任何无人看管的,非相互互动的客户端应用或组件(包括ASP,ASP,ASP.NET,DCOM和NT Services)中自动化,因为办公室可能会表现出不稳定的行为和/或在这种环境下运行时的僵局。
  2. 这意味着即使您整理出您的服务器端/客户端问题,您仍在玩火,因为某些情况可能会起作用,其他情况可能不起作用,而其他情况则有时会起作用,有时会导致您的过程挂起,因为Excel试图在没有控制台用户登录到服务器的情况下打开弹出通知。相信我,不要这样做。
  3. 我提供的链接列出了您要尝试的工作的几种替代方案,但是假设您打算为用户构建相对简单的Excel表,那么最好只需创建一个
  4. CSV文件
  5. ,然后将其发送给用户,然后将其发送给用户(类似
  6. Response.ContentType="application/vnd.ms-excel"
),以便Excel默认将返回的数据打开。 您可以看到有关该问题的更多答案。

2
投票

这听起来真的很奇怪,但是我至少有两个案例,当访问Interop的类似问题由double办公室完整/在线维修解决。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.