none
Interop Excel 2013 com Win Server 2012R2 erro CLSID {00024500-0000-0000-C000-000000000046} RRS feed

  • Pergunta

  • Prezados, montei uma aplicação Web que necessita executar uma planilha Excel onde a mesma contém macros que são inicializadas via app Web.

    Em minha máquina local como desenvolvedor funciona tudo sem problemas, porém quando disponibilizei a aplicação no servidor Web Win Server 2012R2, executo a aplicação e quando vai instanciar o Excel apresenta abaixo, porém observando os diversos sites da web, vi que o problema está relacionado com o COM+, sendo que o Office é 32 e estou em uma máquina 64bits. Além disso todos pedem para alterar as permissões na propriedade do COM do Microsoft Excel em dcomcnfg -32 o, o que fiz, pois inclui um usuário local da máquina como srv\usrOffice tanto nestas propriedades como no user da aplicação. Também dei acesso as pastas de projeto e como em alguns pontos o pessoal fala em criar a pasta Desktop em C:\Windows\System32\config\systemprofile\ se for 32 ou Desktop em C:\Windows\SysWOW64\config\systemprofile\Desktop, o que fiz também e dei o referido acesso para o mesmo usuário com permissão total nesta pasta.

    Já tentei de tudo, até mesmo instalar o VS2013 na máquina server mas também não rolou. Também vi no site de Suporte da Microsoft http://support.microsoft.com/en-us/kb/870655 onde diz que o erro pode ser compartilhamento do COM fiz a alteração e também não rolou.

    Agora uma coisa que é intrigante que não sei o motivo é que o erro diz em CLSID 00024500-.... porém esse CLSID não existe em canto algum já procurei em todas as partes do registry e não existe, o CLSID que é referente ao Excel é {00020812-0000-0000-C000-000000000046}

    Alguém já passou por algo assim e conseguiu resolver? Não posso mudar para OpenXML, pois conforme comentei acima tenho que executar macros na planilha e o OpenXML só permite criar macro, mas não executa.

    Exception: System.Runtime.InteropServices.COMException

    Message: Falha na recuperação de fábrica de classes COM do componente com CLSID {00024500-0000-0000-C000-000000000046} devido ao seguinte erro: 80080005 Falha na execução do servidor (Exceção de HRESULT: 0x80080005 (CO_E_SERVER_EXEC_FAILURE)).

    StackTrace:    em System.Runtime.Remoting.RemotingServices.AllocateUninitializedObject(RuntimeType objectType)

       em System.Runtime.Remoting.Activation.ActivationServices.CreateInstance(RuntimeType serverType)

       em System.Runtime.Remoting.Activation.ActivationServices.IsCurrentContextOK(RuntimeType serverType, Object[] props, Boolean bNewObj)

       em System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck)

       em System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)

       em System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)

       em System.Activator.CreateInstance(Type type, Boolean nonPublic)

       em System.Activator.CreateInstance(Type type)

       em FlowtecFlash.WebForm1.processar()

       em System.Threading.ThreadHelper.ThreadStart_Context(Object state)

       em System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)

       em System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)

       em System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)

       em System.Threading.ThreadHelper.ThreadStart()

    terça-feira, 1 de setembro de 2015 19:28