ASP.NET Não é possível criar componente ActiveX
-
13-09-2019 - |
Pergunta
Tenho uma aplicação ASP.NET que permite aos usuários exportar ausências do seu pessoal a cada mês para Microsoft Excel. A aplicação está gerando a seguinte exceção
Exceção:. Não é possível criar componente ActiveX
com o seguinte rastreamento de pilha
System.Exception: Não é possível criar o componente ActiveX. em Microsoft.VisualBasic.Interaction.CreateObject (String Progld, String ServerName) em HR.ManagerSummary.ExportToExcel () em H: \ Desenvolvimento \ pagec \ Visual Studio 2005 \ Projects \ HR \ ysnet2 \ Tempo \ ManagerSummary.aspx.vb: Linha 935 em HR.ManagerSummary.btnExcel_Click (Object sender, EventArgs e) em H: \ Desenvolvimento \ pagec \ Visual Studio 2005 \ Projects \ HR \ ysnet2 \ Tempo \ ManagerSummary.aspx.vb: Linha 891 em System.Web.UI.WebControls.Button.OnClick (EventArgs e) em System.Web.UI.WebControls.Button.RaisePostBackEvent (String eventArgument) em System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent (String eventArgument) em System.Web.UI.Page.RaisePostBackEvent (IPostBackEventHandler SourceControl, String eventArgument) em System.Web.UI.Page.RaisePostBackEvent (NameValueCollection postData) em System.Web.UI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
O código de falha na linha 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)
Eu tenho permissão set em DCOM Config para Microsoft Application Excel para a conta IUSR_ mas isso não resolveu o problema. Alguma idéia seria muito apreciada.
Felicidades
James
Solução
Após a migração das nossas aplicações ASP.NET para um novo hardware, I investigado esta questão e veio com uma solução.
Para resolver o problema, abra "Component Services" de Ferramentas Administrativas e navegar como se segue:
- Serviços de Componentes -> Computadores -> Meu computador -> DCOM Config -> Microsoft Application Excel
- clique com o botão direito Microsoft Application Excel -> Propriedades -> guia Segurança
- Clique em Personalizar para "permissões de ativação e" -> Editar -> Adicionar
- Digite "Serviço de rede", clique em "Verificar nomes", clique em OK
- Permitir "Lançamento Local" e "activação local" para "Serviço de rede" e clique em OK
- Select personaliza para "Permissões de acesso" -> Editar -> Adicionar
- Digite "Serviço de rede", clique em "Verificar nomes", clique em OK
- Permitir "Acesso Local" para de "Serviço de rede" e clique em OK
- Clique em OK
A aplicação ASP.NET agora com êxito pode criar uma planilha do Microsoft Excel que contém os dados exportados.
Outras dicas
Será que você registrou o ActiveX no servidor?
SpreadsheetGear for .NET vai deixar você guardar xls e pastas de trabalho XLSX diretamente para um fluxo de resposta com IWorkbook. SaveToStream. É todo o código # segura conseguiu C por isso não há necessidade de executar qualquer coisa como administrador e você não vai correr para os problemas que o Excel interoperabilidade trazer em um servidor ASP.NET.
Você pode ver alguns simples amostras de relatórios ASP.NET Excel (C # e VB) usando SpreadsheetGear aqui e baixar o teste gratuito aqui se você quiser experimentá-lo -se.
Disclaimer: eu próprio SpreadsheetGear LLC