2011-05-14 17 views
5

Tengo una aplicación que funciona muy bien a nivel local, pero cuando se despliega Estoy viendo el error:Cómo depurar Asamblea de carga - ConfigurationErrorsException

Exception information: 
    Exception type: ConfigurationErrorsException 
    Exception message: Could not load file or assembly 'FluentMigrator.Runner' or one of its dependencies. An attempt was made to load a program with an incorrect format. 
    at System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) 
    at System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory() 
    at System.Web.Configuration.AssemblyInfo.get_AssemblyInternal() 
    at System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig) 
    at System.Web.Compilation.BuildManager.CallPreStartInitMethods() 
    at System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, Exception appDomainCreationException) 

He tratado de ver las fijaciones de montaje de registro a través de la Asamblea Enlazando Log Viewer, pero incluso con eso activado no obtengo más información que el trazado de la pila anterior, el registro parece estar vacío. El ensamblaje del que se queja está presente y tiene todos sus ensamblajes dependientes presentes. ¿Qué más puedo hacer para eliminar errores en mi servidor?

Respuesta

2

Este error está relacionado con la falta de correspondencia de la arquitectura, es decir, sus binarios probablemente esperan ejecutarse en el proceso x86, pero IIS los ejecuta en el proceso x64 (o viceversa). Esto se puede configurar en la configuración del conjunto de aplicaciones.

para depurar el problema, puede probar lo siguiente: 1) Activar el registro de fusión ( How to enable assembly bind failure logging (Fusion) in .NET

2) Utilizando el depurador de Windows (WinDbg) con cargador encaje. Vea aquí cómo configurarlo. http://www.microsoft.com/msj/0999/hood/hood0999.aspx

También cuando en WinDbg captura logrado con excepción sxeclr comando Al llegar a ConfigurationErrorsException, se debe ejecutar .loadby sos CLR de comandos, a continuación, PE - esto debería mostrar más detalles acerca de la excepción. Al mismo tiempo, las instantáneas del cargador deberían mostrar qué DLL está teniendo problemas de carga. Debería ejecutar su proceso de trabajo de IIS (w3wp.exe) bajo WinDBG. Deberías usar gflags para configurar eso. Generalmente 2) ayudaría con los ensamblados de C++/CLI.