none
Problemas al publicar un sitio Web con una dll informix RRS feed

  • Pregunta

  • Buenas, hice un sitio web en mi maquina con win 8, y visual studio 2013, ademas, en este sitio hago referencia a una dll de informix.

    Cuando quiero publicarlo en el servidor (windwos server 2012) y lo quiero probar me tira la siguiente pantalla de error, comento que ya instale las mismas versiones de informix en las dos maquinas pero me sigue tirando ese error:

    Error de servidor en la aplicación '/'.

    No se puede cargar el archivo o ensamblado 'IBM.Data.Informix' ni una de sus dependencias. Se ha intentado cargar un programa con un formato incorrecto.

    Descripción: Excepción no controlada al ejecutar la solicitud Web actual. Revise el seguimiento de la pila para obtener más información acerca del error y dónde se originó en el código.

    Detalles de la excepción: System.BadImageFormatException: No se puede cargar el archivo o ensamblado 'IBM.Data.Informix' ni una de sus dependencias. Se ha intentado cargar un programa con un formato incorrecto.

    Error de código fuente:
    Se ha generado una excepción no controlada durante la ejecución de la solicitud Web actual. La información sobre el origen y la ubicación de la excepción pueden identificarse utilizando la excepción del seguimiento de la pila siguiente.

    Rastro al cargar el ensamblado: La información siguiente puede ser útil para determinar porqué no se cargó el ensamblado 'IBM.Data.Informix'.
    El administrador de ensamblados se cargó desde:  C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll
    Ejecución bajo archivo ejecutable  c:\windows\system32\inetsrv\w3wp.exe
    --- Registro de errores detallado. 
    
    === Información de estado anterior al enlace ===
    LOG: Usuario = IIS APPPOOL\SubirProgramas
    LOG: DisplayName = IBM.Data.Informix
     (Partial)
    AVS: Se proporcionó información de enlace parcial para un ensamblado:
    AVS: Nombre de ensamblado: IBM.Data.Informix | Id. de dominio: 2
    AVS: Un enlace parcial tiene lugar cuando solo se proporciona parte del nombre para mostrar del ensamblado.
    AVS: Esto puede dar lugar a que el enlazador cargue un ensamblado incorrecto.
    AVS: Se recomienda proporcionar una identidad textual completamente especificada para el ensamblado,
    AVS: que consta del nombre simple, la versión, la referencia cultural y el token de clave pública.
    AVS: Vea las notas del producto http://go.microsoft.com/fwlink/?LinkId=109270 para obtener más información y soluciones comunes a este problema.
    LOG: Appbase = file:///C:/inetpub/wwwroot/SubirProgramas/
    LOG: PrivatePath inicial = C:\inetpub\wwwroot\SubirProgramas\bin
    Ensamblado de llamada : (Unknown).
    ===
    LOG: Este enlace empieza en el contexto de carga default.
    LOG: Utilización del archivo de configuración de la aplicación: C:\inetpub\wwwroot\SubirProgramas\web.config
    LOG: Utilizando el archivo de configuración de host: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet.config
    LOG: Utilizando el archivo de configuración del equipo en C:\Windows\Microsoft.NET\Framework64\v4.0.30319\config\machine.config.
    LOG: La directiva no se está aplicando a la referencia en este momento (enlace de ensamblado privado, personalizado, parcial o basado en la ubicación).
    LOG: Intento de descarga de la nueva dirección URL file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET Files/root/999d4ae6/10a7675e/IBM.Data.Informix.DLL.
    LOG: Intento de descarga de la nueva dirección URL file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET Files/root/999d4ae6/10a7675e/IBM.Data.Informix/IBM.Data.Informix.DLL.
    LOG: Intento de descarga de la nueva dirección URL file:///C:/inetpub/wwwroot/SubirProgramas/bin/IBM.Data.Informix.DLL.
    ERR: Error al completar la instalación del ensamblado (hr = 0x8007000b). Finalizó la búsqueda.
    

    Seguimiento de la pila:
    [BadImageFormatException: No se puede cargar el archivo o ensamblado 'IBM.Data.Informix' ni una de sus dependencias. Se ha intentado cargar un programa con un formato incorrecto.]
       System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +0
       System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +210
       System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean forIntrospection) +242
       System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +17
       System.Reflection.Assembly.Load(String assemblyString) +35
       System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +122
    
    [ConfigurationErrorsException: No se puede cargar el archivo o ensamblado 'IBM.Data.Informix' ni una de sus dependencias. Se ha intentado cargar un programa con un formato incorrecto.]
       System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +12761078
       System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory() +503
       System.Web.Configuration.AssemblyInfo.get_AssemblyInternal() +142
       System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig) +334
       System.Web.Compilation.BuildManager.CallPreStartInitMethods(String preStartInitListPath) +203
       System.Web.Compilation.BuildManager.ExecutePreAppStart() +152
       System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, Exception appDomainCreationException) +1151
    
    [HttpException (0x80004005): No se puede cargar el archivo o ensamblado 'IBM.Data.Informix' ni una de sus dependencias. Se ha intentado cargar un programa con un formato incorrecto.]
       System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +12881540
       System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +159
       System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +12722601
    
     
    miércoles, 13 de julio de 2016 15:37

Respuestas

  • En principio el System.BadImageFormatException se produce cuando estás intentando cargar una dll de 64 bit por ejemplo en un entorno de 32bit. Puedes mostrarnos la configuración de tu AppPool? Tal vez el ensamblado sea de 32 bit y no has habilitado el uso de 32 bit.

    En tu AppPool pulsas botón derecho/Advanced Settings…” / Cambiar “Enable 32-bit Applications” a True 

    How to Enable a 32-bit Application Pool in IIS 7 (Dedicated/VPS)


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    viernes, 15 de julio de 2016 7:42
    Moderador

Todas las respuestas

  • hola

    valida que la dll de IBM.Data.Informix se encuentra en la carpeta \bin del sitio web

    quizas debas seleccionar al referencia y las propiedades asignarle el Copy Local = true

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 13 de julio de 2016 15:56
  • estimado, ya esta chequeado todo eso que me decis, pero me sigue tirando el mismo error.

    Te hago una pregunta, el cliente SDK no debe ser instalado en el servidor web no?. 

    jueves, 14 de julio de 2016 20:21
  • En principio el System.BadImageFormatException se produce cuando estás intentando cargar una dll de 64 bit por ejemplo en un entorno de 32bit. Puedes mostrarnos la configuración de tu AppPool? Tal vez el ensamblado sea de 32 bit y no has habilitado el uso de 32 bit.

    En tu AppPool pulsas botón derecho/Advanced Settings…” / Cambiar “Enable 32-bit Applications” a True 

    How to Enable a 32-bit Application Pool in IIS 7 (Dedicated/VPS)


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    viernes, 15 de julio de 2016 7:42
    Moderador
  • Hola, recien vuelvo de las vacaciones.

    mmm... podria ser eso... estaba en false y no recuerdo si la dll que instale era de 64 o de 32... 

    Pruebo y te aviso. 

    Saludos

    lunes, 1 de agosto de 2016 15:05
  • Afirmativo amigo, era ese el problema, muchas gracias por tu aporte! 

    Saludos

    lunes, 1 de agosto de 2016 15:33