Breadcrumbs

Falha ao carregar contexto:IBM.Data.DB2.dll - Como resolver?

Falha

Quando enviado documentos para a Sefaz, os mesmos ficaram pendentes de envio no eMonitor e ao analisar o log é gerado o erro abaixo:

[TP_E2]; ERROR; 2015-24-11 16:30:03.968; [SupportComponentController]; Falha ao carregar contexto. Erro: Could not load file or assembly 'file:///C:\Arquivos de programas\NDDigital\eForms\Connector\Connector Service\NDDigitaleFormsConnectorService2\IBM.Data.DB2.dll' or one of its dependencies. Foi feita uma tentativa de se carregar um programa com um formato incorreto.;  
[TP_E2]; FATAL; 2015-24-11 16:30:03.968; [Gerenciamento]; Erro não tratado na execução do processo: 1076403 - NFeSend, Job: Producao - Lajeado Grande - SC - CC 79, Documento: 00000001_903724-env-lot.txt, Mensagem: Could not load file or assembly 'file:///C:\Arquivos de programas\NDDigital\eForms\Connector\Connector Service\NDDigitaleFormsConnectorService2\IBM.Data.DB2.dll' or one of its dependencies. Foi feita uma tentativa de se carregar um programa com um formato incorreto., SOURCE: mscorlib, STACKTRACE: at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)  
at System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)  
at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection, Boolean suppressSecurityChecks)  
at System.Reflection.RuntimeAssembly.InternalLoadFrom(String assemblyFile, Evidence securityEvidence, Byte[] hashValue, AssemblyHashAlgorithm hashAlgorithm, Boolean forIntrospection, Boolean suppressSecurityChecks, StackCrawlMark& stackMark)  
at System.Reflection.Assembly.LoadFrom(String assemblyFile)  
at NDDigital.eIntegration.Spring.Manager.Context.SpringResources.GetAssemblies(String[] path)  
at NDDigital.eIntegration.Spring.Manager.Context.SpringResources.GetResources(String[] path)  
at NDDigital.eIntegration.Spring.Manager.SpringHelper.FillSpringContextDTO()  
at NDDigital.eIntegration.Spring.Manager.SpringHelper.CreateNewContext(String contextName, String connectionString, DBProviderEnum provider)  
at NDDigital.eIntegration.License.SupportComponent.Controller.SupportComponentControllerImpl.InitializeContext()  
at NDDigital.eIntegration.License.SupportComponent.Controller.SupportComponentControllerImpl..ctor()  
at NDDigital.eIntegration.License.SupportComponent.Manager.LicenseManager..ctor()  
at NDDigital.eIntegration.License.SupportComponent.Manager.LicenseManager.get_Instance()  
at NDDigital.Services.Business.Processor.Core.AbstractProcessor.VerifyLicense(EletronicSendVO processor, String cnpj, ProductCode product, List`1 sameTransactionMethods)  
at NDDigital.Services.Business.Processor.Impl.NFeSendProcessor.ProcessList(List`1 processors)  
at NDDigital.Services.Manager.ThreadJob.ProcessQueue();

Solução

1 - Localizar as DLL's do Connector no diretório \\abraao\nddigital\NDDigital\Produtos, exemplo (\\abraao\nddigital\NDDigital\Produtos\eForms\4.6\Arquivo de Programas\4.6.8.0\Connector Service).

2 - Comparar com as DLL's que estão no cliente no diretório de instalação do Connector Service.

3 - Remover as DLLs que estão a mais.

4 - Realizar sincronização da instância via Connector Settings (executar Settings como Administrador).

Obs: Solução postada no 0800 em 24/11/15, editado para melhor entendimento

Outras informações

Fonte: Lauvir José Ribeiro Junior