2009-12-04 133 views
5

Tengo una aplicación ASP.NET que permite a los usuarios exportar las ausencias de su personal todos los meses a Microsoft Excel. La aplicación genera actualmente la siguiente excepciónASP.NET No se puede crear el componente ActiveX

Excepción: No se puede crear el componente ActiveX.

con el seguimiento de la pila siguiente System.Exception

: No se puede crear el componente ActiveX. en Microsoft.VisualBasic.Interaction.CreateObject (String ProgId, String ServerName) en HR.ManagerSummary.ExportToExcel() en H: \ Development \ pagec \ Visual Studio 2005 \ Projects \ HR \ ysnet2 \ Time \ ManagerSummary.aspx.vb : línea 935 en HR.ManagerSummary.btnExcel_Click (Object Sender, EventArgs e) en H: \ Development \ pagec \ Visual Studio 2005 \ Projects \ HR \ ysnet2 \ Time \ ManagerSummary.aspx.vb: línea 891 en System.Web .UI.WebControls.Button.OnClick (EventArgs e) en System.Web.UI.WebControls.Button.RaisePostBackEvent (String eventArgument) en System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent (String eventArgument) en System.Web.UI.Page.RaisePostBackEvent (IPostBackEventHventler sourceControl, String eventArgument) en System.Web. UI.Page.RaisePostBackEvent (NameValueCollection Postdatum) en System.Web.UI.Page.ProcessRequestMain (booleano includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

El código falla en la línea de 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) 

He conjunto de permisos en Configuración DCOM para aplicaciones de Microsoft Excel para la cuenta IUSR_ pero eso no ha resuelto el problema. Cualquier idea sería muy apreciada.

Saludos

James

Respuesta

5

Después de la migración de nuestras aplicaciones ASP.NET a un nuevo hardware, que investigó esta cuestión y se le ocurrió una solución.

Para resolver el problema, "Servicios de componentes" abiertas desde Herramientas administrativas y utilice la siguiente ruta:

  • Servicios de componentes -> Computadoras -> Mi PC -> Configuración DCOM -> Aplicaciones de Microsoft Excel
  • Derecho haga clic en Aplicación de Microsoft Excel -> Propiedades -> pestaña Seguridad
  • Haga clic en Personalizar para "inicio y activación permisos" -> Editar -> Añadir
  • Enter "Servicio de red", haga clic en "Comprobar nombres", haga clic en Aceptar
  • Permitir "Ejecución local" y "Activación local" para "Servicio de red" y haga clic en OK
  • Elija Personalizar para "permisos de acceso" -> Editar -> Añadir
  • Enter "Servicio de red", haga clic en "Comprobar nombres" , haga clic en Aceptar
  • permiten el "acceso local" para para "Servicio de red" y haga clic en OK
  • Haga clic en OK

La aplicación ASP.NET ahora pueden crear con éxito una hoja de cálculo de Microsoft Excel que contiene los datos exportados.

0

le permitirá ahorrar xls y xlsx libros directamente a una secuencia de respuesta con IWorkbook.SaveToStream. Es todo código C# seguro administrado, por lo que no es necesario ejecutar nada como administrador y no se encontrará con los problemas que trae la interoperabilidad COM de Excel en un servidor ASP.NET.

Puede ver algunos ejemplos simples de informes de ASP.NET Excel (C# y VB) usando SpreadsheetGear here y descargar la versión de prueba gratuita here si quiere probarlo usted mismo.

responsabilidad: Soy dueño de SpreadsheetGear LLC

Cuestiones relacionadas