我有一个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应用程序”属性“安全性”
在启动和激活权限中,单击“自定义”并向其添加网络服务,并为其授予“本地启动”和“本地激活”权限。给予相同的访问权限和配置权限
按确定,就这样。我现在可以运行我的应用程序。
我已经完成了完美的编码注册页面,登录代码,现在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…