打开Excel错误:System.Runtime.InteropServices.COMException(0x80080005):检索具有CLSID的组件的COM类工厂 - c#

我有一个C#.net Web应用程序。我希望用户单击网页上的按钮,让服务器单击以打开Excel电子表格并向其中写入数据,并希望用户保存文档。使用Visual Studio 2010和Office 2010可以在本地运行。但是,在我的服务器上,出现此错误:

System.Runtime.InteropServices.COMException(0x80080005):由于以下错误,无法获取具有CLSID {00024500-0000-0000-C000-000000000046}的组件的COM类工厂:80080005服务器执行失败(HRESULT异常:0x80080005(CO_E_SERVER_EXEC_FAILURE ))。

我进行了研究,发现了很多答案,说明要打开dcomconfig并将具有权限的用户添加到Microsoft Excel Application。我的站点设置为通过安全性,因此我添加了自己;我是服务器上的管理员,因此确保管理员可以访问;我还添加了网络服务的应用程序池默认值;还有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中,右键单击“我的电脑”,然后选择属性。
转到组件/ MyComputer / DCOMConfig
转到“ Microsoft Excel应用程序”属性“安全性”
在启动和激活权限中,单击“自定义”并向其添加网络服务,并为其授予“本地启动”和“本地激活”权限。给予相同的访问权限和配置权限
按确定,就这样。我现在可以运行我的应用程序。

错误:无法将类型为“ System.Int32”的对象转换为类型为“ System.String”的对象 - c#

我已经完成了完美的编码注册页面,登录代码,现在UpdateCustomer页面有错误-背景信息:我正在使用Microsoft Access作为数据源 LabelState.Text = (string)Session["sState"]; LabelPostalCode.Text = (string)Session["sPost…

java runtime.freememory()与jconsole输出不匹配 - java

我当时遇到一个奇怪的问题。我有多个JVM在运行,我需要获取它们的内存使用情况详细信息。当我通过Runtime.getFreeMemory()获取详细信息并将其与jconsole输出进行比较时,会有很大的不同。可能是什么问题?使用Runtime.getFreeMemory()时我得到的信息不正确或ManagementFactory.getMemoryMXBea…

System.out.printf不打印整数参数 - java

我是Java编程的新手,无法从另一个类返回方法。这两个类都可以编译并成功运行。我可以从一个类中调用一个简单的int,但是当我想计算用户输入的两个输入整数时,我只会得到一个空格。这是我的计算课class calculations { public final int AGE = 53; public int numbers(int num1, int num2…

System.Text.Json合并两个对象 - c#

是否可以用System.Text.Json?合并两个这样的json对象对象1{ id: 1 william: "shakespeare" } 对象2{ william: "dafoe" foo: "bar" } 结果对象{ id: 1 william: "dafoe" foo: …

如何解析Dapper System.Data.DataException HResult = 0x80131501 InvalidCastException从'System.String'到'System.Uri'的无效转换 - c#

最近,我重构了一些代码,这些代码导致将实体的某些属性的类型从System.String更改为System.URI。有问题的属性名称包含子字符串URI或URL,并且SonarLint静态代码分析器建议将代码重构为对这些属性使用System.URI类型而不是System.String,这在我们的解决方案中很有意义。在这个项目中,我们利用StackExchange…