ASP.NET 无法创建 ActiveX 组件

标签 asp.net excel activexobject

我有一个 ASP.NET 应用程序,允许用户将员工每月的缺勤情况导出到 Microsoft Excel。应用程序当前生成以下异常

异常:无法创建 ActiveX 组件。

具有以下堆栈跟踪

System.Exception: 无法创建 ActiveX 组件。 在 Microsoft.VisualBasic.Interaction.CreateObject(String ProgId, String ServerName) 在 H:\Development\pagec\Visual Studio 2005\Projects\HR\ysnet2\Time\ManagerSummary.aspx.vb 中的 HR.ManagerSummary.ExportToExcel() 处:第 935 行 在 H:\Development\pagec\Visual Studio 2005\Projects\HR\ysnet2\Time\ManagerSummary.aspx.vb 中的 HR.ManagerSummary.btnExcel_Click(Object sender, EventArgs e):第 891 行 在 System.Web.UI.WebControls.Button.OnClick(EventArgs e) 在 System.Web.UI.WebControls.Button.RaisePostBackEvent(字符串 eventArgument) 在 System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(字符串 eventArgument) 在 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl,字符串 eventArgument) 在 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) 在 System.Web.UI.Page.ProcessRequestMain( bool includeStagesBeforeAsyncPoint, bool includeStagesAfterAsyncPoint)

代码在 CreateObject 行失败。

    'Create the Excel object
    Dim objXL As Object = CreateObject("Excel.Application") ' New Microsoft.Office.Interop.Excel.Application
    Dim objWB As Object = objXL.Workbooks.Add
    Dim objWS As Object = objWB.Worksheets(1)

我已在 Microsoft Excel 应用程序的 DCOM 配置中为 IUSR_ 帐户设置了权限,但这并没有解决问题。任何想法将不胜感激。

干杯

詹姆斯

最佳答案

将 ASP.NET 应用程序迁移到新硬件后,我进一步研究了这个问题并提出了解决方案。

要解决此问题,请从管理工具中打开“组件服务”并按如下方式导航:

  • 组件服务 -> 计算机 -> 我的电脑 -> DCOM 配置 -> Microsoft Excel 应用程序
  • 右键单击 Microsoft Excel 应用程序 -> 属性 -> 安全选项卡
  • 点击“启动和激活权限”的自定义 -> 编辑 -> 添加
  • 输入“NETWORK SERVICE”,点击“检查名称”,然后点击“确定”
  • 允许“网络服务”的“本地启动”和“本地激活”,然后点击“确定”
  • 选择“访问权限”自定义 -> 编辑 -> 添加
  • 输入“NETWORK SERVICE”,点击“检查名称”,然后点击“确定”
  • 允许“网络服务”的“本地访问”,然后点击“确定”
  • 点击“确定”

ASP.NET 应用程序现在可以成功创建包含导出数据的 Microsoft Excel 工作表。

关于ASP.NET 无法创建 ActiveX 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1847444/

相关文章:

c# - Asp.net DataRow中的行

c# - ConnectionString 中未指定 OLE DB 提供程序。 '供应商= SQLOLEDB;

excel - 关闭第二个工作簿后激活第一个工作簿?

c# - 释放 JavaScript 的 ActiveXObject()?

javascript - 从字符串 javascript 转换为 Access 日期时间

javascript - 使用 JavaScript 调用 Excel 文件

c# - PUT 和删除不适用于 Windows Azure 上的 ASP.NET WebAPI 和数据库

asp.net - 在 asp .net 网站中从社交网络和电子邮件提供商导入联系人和 friend

excel - 多列vlookup

excel - 在 Excel VBA 中使用 Outlook 控件