puede net microsoft filesystem ensamblado cargar archivo asp.net asp.net-mvc visual-studio azure azure-web-sites

asp.net - net - No se pudo cargar el archivo o ensamblado System.Web.Http.WebHost después de publicado en el sitio web de Azure



no se puede cargar el archivo o ensamblado system io filesystem (13)

En el caso de que "Copiar local" ya sea verdadero, algunas veces me parece que funciona si elimina los archivos donde se ha publicado y publicado nuevamente.

Por ejemplo, si está utilizando IIS, elimine los sitios web y los contenidos del directorio en el que se publican y vuelva a publicar.

Puede haber versiones anteriores de los archivos en el destino, por lo que para asegurarse de que no está usando versiones anteriores, elimine todo antes de publicar de nuevo.

Creé un proyecto web y funciona bien en Visual Studio. Sin embargo, recibí el siguiente error después de publicarlo en azurewebsites. ¿Qué puede causar el problema?

No se pudo cargar el archivo o ensamblado ''System.Web.Http.WebHost, Version = 5.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35'' o una de sus dependencias. La definición del manifiesto del ensamblaje ubicado no coincide con la referencia de ensamblaje. (Excepción de HRESULT: 0x80131040)

Descripción: se produjo una excepción no controlada durante la ejecución de la solicitud web actual. Revise el seguimiento de la pila para obtener más información sobre el error y dónde se originó en el código.

Detalles de la excepción: System.IO.FileLoadException: No se pudo cargar el archivo o ensamblado ''System.Web.Http.WebHost, Versión = 5.0.0.0, Cultura = neutral, PublicKeyToken = 31bf3856ad364e35'' o una de sus dependencias. La definición del manifiesto del ensamblaje ubicado no coincide con la referencia de ensamblaje. (Excepción de HRESULT: 0x80131040)

Error de fuente:

Se generó 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 se puede identificar utilizando el seguimiento de pila de excepción a continuación.

Rastreo de carga de ensamblaje: la siguiente información puede ser útil para determinar por qué no se pudo cargar el ensamblado ''System.Web.Http.WebHost, Version = 5.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35''.

WRN: el registro de enlace de ensamblaje está APAGADO. Para habilitar el registro de fallas de enlace de ensamblaje, establezca el valor de registro [HKLM / Software / Microsoft / Fusion! EnableLog] (DWORD) en 1. Nota: Hay una cierta penalización de rendimiento asociada con el registro de fallas de enlace de ensamblaje. Para desactivar esta función, elimine el valor de registro [HKLM / Software / Microsoft / Fusion! EnableLog].

Lo siguiente es parte del archivo web.config.

<system.web> <customErrors mode="Off"/> <compilation debug="true" targetFramework="4.5" /> <httpRuntime targetFramework="4.5" /> <authentication mode="Forms"> <forms loginUrl="~/Account/Login" timeout="2880" /> </authentication> <pages> <namespaces> <add namespace="System.Web.Helpers" /> <add namespace="System.Web.Mvc" /> <add namespace="System.Web.Mvc.Ajax" /> <add namespace="System.Web.Mvc.Html" /> <add namespace="System.Web.Optimization" /> <add namespace="System.Web.Routing" /> <add namespace="System.Web.WebPages" /> </namespaces> </pages> </system.web> <system.webServer> <validation validateIntegratedModeConfiguration="false" /> <handlers> <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" /> <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" /> <remove name="ExtensionlessUrlHandler-Integrated-4.0" /> <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%/Microsoft.NET/Framework/v4.0.30319/aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%/Microsoft.NET/Framework64/v4.0.30319/aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" /> </handlers></system.webServer> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="DotNetOpenAuth.Core" publicKeyToken="2780ccd10d57b246" /> <bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.1.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="DotNetOpenAuth.AspNet" publicKeyToken="2780ccd10d57b246" /> <bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.1.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="0.0.0.0-1.5.2.14234" newVersion="1.5.2.14234" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="EntityFramework" publicKeyToken="b77a5c561934e089" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" /> </dependentAssembly> </assemblyBinding> </runtime>


Encontré el mismo problema y lo resolví configurando CopyLocal en true para las siguientes librerías:

System.Web.Http.dll System.Web.Http.WebHost.dll System.Net.Http.Formatting.dll

Debo agregar que uso MVC4 y NET 4


Esto me sucedió en VS2013 (Actualización 5) /ASP.NET 4.5, en el tipo de proyecto "Aplicación web" que incluye MVC y Web API 2. El error ocurrió justo después de crear el proyecto y antes de agregar cualquier código. Al agregar la siguiente configuración, corrígelo por mí. Después de resolver el problema "System.Web.Helpers" surgieron dos errores más similares para "System.Web.Mvc" y "System.Web.WebPages".

<runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.2.3.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" /> </dependentAssembly>


Estoy usando vs2012 y creo que la actualización KB2781514 cambió alguna configuración. Todo mi System.Web.Http en mi proyecto MVC4 cambió a falso y sigo recibiendo este mensaje. Cambié el All file in this project en la propiedad de publicación pero no funciona. Finalmente tengo que cambiar Copy Local = true uno por uno y solucioné este problema.


La dll falta en el entorno publicado (desplegado). Esa es la razón por la que está funcionando en el local, es decir, Visual Studio, pero no en el entorno del sitio web de Azure.

Simplemente Copy Local = true en las propiedades para el ensamblaje ( System.Web.Http.WebHost ) y luego realice una redistribución, debería funcionar bien.

Si obtiene el error similar, es decir, falta algún otro ensamblaje, haga que ese ensamblado copielocal = verdadero y vuelva a desplegarlo, repita esto de forma iterativa, si no está seguro de sus dependencias.


La dll falta en el entorno publicado (desplegado). Esa es la razón por la que está funcionando en el local, es decir, Visual Studio, pero no en el entorno del sitio web de Azure.

Simplemente copie Local = true en las propiedades para el ensamblaje (System.Web.Http.WebHost) y luego realice una redistribución, debería funcionar bien.


Me faltaban varios archivos DLL. Incluso si los copiara manualmente en el directorio la próxima vez que publicara, desaparecerían. Cada uno ya estaba configurado para copiar localmente en VS. La solución para mí fue configurar cada local para copiar localmente falso, guardar, compilar y configurar cada uno para que sea localmente verdadero. Esta vez cuando publiqué todas las DLL publicadas correctamente. Extraño


Obtuve el mismo error y cambié mi versión de 4 a 3 y se resuelve:

<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <!-- Ensure correct version of MVC --> <dependentAssembly> <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/> <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0"/> </dependentAssembly> </assemblyBinding>


Para mí trabajó agregando la siguiente sección al archivo web.config :

<configuration> ... <runtime> ... <dependentAssembly> <assemblyIdentity name="System.Web.Http.WebHost" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-5.1.0.0" newVersion="5.1.0.0" /> </dependentAssembly> ... </runtime> ... </configuration>

Este ejemplo representa MVC 5.1. Espero que ayude a alguien a resolver ese problema.


Para mí, comenzó a funcionar después de seleccionar "Eliminar archivos adicionales en el destino" en las opciones de publicación de archivos en la configuración del diálogo de publicación.


Si tiene varios proyectos en su solución y uno de sus proyectos no puede compilarse debido a este error, entonces asegúrese de haber instalado el paquete nuket principal de WebApi en ese proyecto. Simplemente agregando una referencia al System.Web.Http no ayuda, necesita instalar el paquete nuget correcto en ese proyecto.

Tenía varios proyectos en mi solución y WebApi Core ya estaba instalado en otro proyecto. Hice referencia al ensamblado System.Web.Http haciendo clic con el botón derecho y marcando el ensamblaje de la lista y no funcionó en Azure, aunque a nivel local se compilaría bien. Tuve que eliminar la referencia manual y agregar el paquete nuget de WebApi Core a cada proyecto que necesitaba la referencia de ensamblaje.


Si todavía está buscando una respuesta, intente comprobar este hilo de pregunta . Me ayudó a resolver un problema similar.

editar: la solución que me ayudó fue ejecutar Update-Package Microsoft.AspNet.WebApi -reinstall del administrador de paquetes NugGet, como lo sugirió Pathoschild. Luego tuve que eliminar mi archivo .suo y reiniciar VS, como lo sugirió Sergey Osypchuk en este hilo .


Tuve el mismo problema en mi aplicación.

System.web.http.webhost not found.

Solo necesita copiar el archivo system.web.http.webhost de su proyecto principal que ejecuta en Visual Studio y pegarlo en su directorio de bin proyecto publicado.

Después de esto, puede mostrar el mismo error pero el nombre del directorio ha cambiado, puede ser system.web.http . Siga el mismo procedimiento que arriba. Funcionará después de que se carguen todos los archivos. Esto debido al paquete nuget en Visual Studio que descargan de Internet, pero en el servidor no puede descargarlo.

Puede encontrar este archivo en el directorio bin su proyecto.