2009-12-04 184 views
5

我有一个ASP.NET应用程序,允许用户每月出口企业员工的缺勤到Microsoft Excel。该应用目前正在产生以下异常ASP.NET无法创建ActiveX组件

例外:无法创建ActiveX组件。

以下堆栈跟踪

System.Exception:无法创建ActiveX组件。 at Microsoft.VisualBasic.Interaction.CreateObject(String ProgId,String ServerName) at HR.ManagerSummary.ExportToExcel()in H:\ Development \ pagec \ Visual Studio 2005 \ Projects \ HR \ ysnet2 \ Time \ ManagerSummary.aspx.vb :行935 在HR.ManagerSummary.btnExcel_Click(对象发件人,EventArgs e)在H:\开发\ pagec \ Visual Studio 2005的\项目\ HR \ ysnet2 \时间\ ManagerSummary.aspx.vb:行891 在System.Web程序.UI.WebControls.Button.OnClick(EventArgs e) at System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) at 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(布尔includeStagesBeforeAsyncPoint,布尔includeStagesAfterAsyncPoint)

的代码失败在创建对象线。

'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) 

我设置权限DCOM配置为Microsoft Excel应用为IUSR_帐户,但尚未解决的问题。任何想法将不胜感激。

干杯

詹姆斯

回答

5

继我们的ASP.NET应用程序到新硬件的迁移,我研究过此问题,并进一步与解决方案上来。

从管理工具解决这个问题,打开 “组件服务”,然后导航如下:

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

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

0

将让您保存XLS和XLSX直接工作簿与IWorkbook.SaveToStream的响应流。这是所有安全管理的C#代码,因此不需要以管理员身份运行任何内容,也不会遇到Excel COM Interop在ASP.NET服务器上带来的问题。

如果您想自己尝试,可以使用SpreadsheetGear here来查看一些简单的ASP.NET Excel报告示例(C#和VB)并下载免费试用here

声明:我自己的SpreadsheetGear LLC

相关问题