ASP.NET无法创buildActiveX组件

我有一个ASP.NET应用程序,允许用户每个月将其员工的缺席情况导出到Microsoft Excel。 该应用程序正在生成以下exception

例外:无法创buildActiveX组件。

与以下堆栈跟踪

System.Exception:不能创buildActiveX组件。 H:\ Development \ pagec \ Visual Studio 2005 \ Projects \ HR \ ysnet2 \ Time \ ManagerSummary.aspx.vb中的HR.ManagerSummary.ExportToExcel()中的Microsoft.VisualBasic.Interaction.CreateObject(String ProgId,String ServerName) 935 at HR.ManagerSummary.btnExcel_Click(Object sender,EventArgs e)in H:\ Development \ pagec \ Visual Studio 2005 \ Projects \ HR \ ysnet2 \ Time \ ManagerSummary.aspx.vb:System.Web.UI.WebControls中的第891行.Button.OnClick(EventArgs e)System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument)System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)at System .Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl,String eventArgument)at System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint,Boolean 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 Application的DCOM Config中为IUSR_帐户设置了权限,但是这并没有解决问题。 任何想法将不胜感激。

干杯

詹姆士

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

要解决该问题,请从pipe理工具中打开“组件服务”,然后按如下所示进行导航:

  • 组件服务 – >计算机 – >我的电脑 – > DCOMconfiguration – > Microsoft Excel应用程序
  • 右键单击Microsoft Excel应用程序 – >属性 – >安全选项卡
  • 点击自定义“启动和激活权限” – >编辑 – >添加
  • input“networking服务”,点击“检查名称”,点击确定
  • 允许“networking服务”的“本地启动”和“本地激活”,然后单击确定
  • select自定义“访问权限” – >编辑 – >添加
  • input“networking服务”,点击“检查名称”,点击确定
  • 允许“本地访问”为“networking服务”,然后单击确定
  • 点击OK

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

您是否在服务器上注册了ActiveX?

http://support.microsoft.com/kb/146219

SpreadsheetGear for .NET将允许您将xls和xlsx工作簿直接保存到IWorkbook.SaveToStream的响应stream中。 这是所有安全pipe理的C#代码,所以不需要像pipe理员那样运行任何东西,也不会遇到Excel COM Interop在ASP.NET服务器上带来的问题。

您可以在这里使用SpreadsheetGear查看一些简单的ASP.NET Excel报告示例(C#和VB) ,如果您想亲自尝试,请在此下载免费试用版。

免责声明:我自己的SpreadsheetGear LLC