asp.net - Error Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
(12)
¿Por qué no copiar manualmente el archivo Microsoft.Web.Infrastructure.dll a la carpeta BIN del servidor? Esto funciona para. Mi proyecto es el sitio web VS2010.
Este archivo puede ser localizado:
C: / Archivos de programa (x86) / Microsoft ASP.NET / ASP.NET MVC 4 / Paquetes / Microsoft.Web.Infrastructure.1.0.0.0 / lib / net40
Simplemente cópielo y péguelo en la carpeta BIN.
Probablemente necesites incluir esto en el web.config si no lo tienes ya
<compilation debug="true" targetFramework="4.0">
<assemblies>
<add assembly="Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</assemblies>
</compilation>
Referencia: http://thedeveloperblog.com/
Tengo una pequeña aplicación web. Lo cual funcionó bien hasta que agregué dos genericHandler en mi aplicación.
Realicé los siguientes cambios para el manejador de http
<system.web>
<authentication mode="Forms" >
<forms protection="All" timeout="720" defaultUrl="Default.aspx" loginUrl="Login.aspx" >
</forms>
</authentication>
<authorization>
<deny users="?"/>
</authorization>
<compilation debug="true" targetFramework="4.0" />
<httpHandlers>
<!--Code Log Handler-->
<add verb="*" path="*.aspx" type="System.Web.UI.PageHandlerFactory" />
<add verb="*" type="InfoDomeNewUI.Handler.SendOWA" path="SendOWA.ashx" />
<add verb="*" type="InfoDomeNewUI.Handler.SendSOS" path="SendSOS.ashx" />
</httpHandlers>
<customErrors mode="Off">
<error statusCode="404" redirect="Templates/PageNotFound.html" />
</customErrors>
</system.web>
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<handlers>
<!--Code Log Handler-->
<add name="LogHandler1" path="SendOWA.ashx" verb="*" type="InfoDomeNewUI.Handler.SendOWA"/>
<!-- SMS SENDER-->
<add name="SendSOS" path="SendSOS.ashx" verb="*" type="InfoDomeNewUI.Handler.SendSOS"/>
</handlers>
</system.webServer>
Could not load file or assembly ''Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'' or one of its dependencies. The system cannot find the file specified.
Estoy usando asp.net4.0 y C #. No estoy usando MVC
En el host local, funciona bien.
Pero cuando estoy alojando el código publicado me está dando el error anterior.
Stack Trace: -
[FileNotFoundException: no se pudo cargar el archivo o ensamblado ''Microsoft.Web.Infrastructure, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35'' o una de sus dependencias. El sistema no puede encontrar el archivo especificado.] System.Web.Http.WebHost.SuppressFormsAuthRedirectModule.Register () +0
[InvalidOperationException: el método de inicialización de inicio de la preinstalación. Comience por el tipo System.Web.Http.WebHost.PreApplicationStartCode lanzó una excepción con el siguiente mensaje de error: No se pudo cargar el archivo o ensamblado ''Microsoft.Web.Infrastructure, Version = 1.0.0.0, Cultura = neutral, PublicKeyToken = 31bf3856ad364e35 ''o una de sus dependencias. El sistema no puede encontrar el archivo especificado ..] System.Web.Compilation.BuildManager.InvokePreStartInitMethods (métodos ICollection`1) +11708830 System.Web.Compilation.BuildManager.CallPreStartInitMethods () +465 System.Web.Hosting.HostingEnvironment.Initialize () ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLeve
[HttpException (0x80004005): el método de inicialización de inicio de la preinstalación Inicie en tipo System.Web.Http.WebHost.PreApplicationStartCode lanzó una excepción con el siguiente mensaje de error: No se pudo cargar el archivo o ensamblado ''Microsoft.Web.Infrastructure, Version = 1.0 .0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35 ''o una de sus dependencias. El sistema no puede encontrar el archivo especificado ..] System.Web.HttpRuntime.FirstRequestInit (HttpContext context) +11697760 System.Web.HttpRuntime.EnsureFirstRequestInit (HttpContext context) +141 System.Web.HttpRuntime.ProcessRequestNotificationPrivate (IIS7WorkerRequestInt, HttpContext context) +4866485
Después de instalar Microsoft.Web.Infraestructura a través de Nuget-Package Manager
PM> Install-Package Microsoft.Web.Infrastructure
Copie Microsoft.Web.Infrastructure.dll
manualmente desde la carpeta Nuget-Package
en su aplicación web y luego péguelo en su carpeta bin de su aplicación web implementada en el servidor web.
packages / Microsoft.Web.Infrastructure.1.0.0.0 / lib / net40 / Microsoft.Web.Infrastructure.dll
Funcionó para mí
Encontré el problema. En lugar de agregar un archivo de clase (.cs)
por error, agregué una clase de Web API Controller
que agregó un archivo de configuración en mi solución. Y ese archivo de configuración buscaba la DLL mencionada (Microsoft.Web.Infrastructure 1.0.0.0). Funcionó cuando eliminé ese archivo, limpié la aplicación y luego publiqué.
Estaba enfrentando el mismo problema y desafortunadamente nada aquí estaba funcionando. Finalmente, encontré este enlace: https://blogs.msdn.microsoft.com/jjameson/2009/11/18/the-copy-local-bug-in-visual-studio/
Resulta que la solución es algo tonta: establezca copy-local para el dll de microsoft.web.infrastructure en False, luego configúrelo nuevamente en True.
Por cierto, creo que lo que está sucediendo es que hay dos versiones del dll microsoft.web.infrastructure, uno que está preinstalado en el GAC, y otro que ahora es un paquete nuget. Creo que uno está enmascarando el otro, por lo tanto, está causando problemas. En mi caso particular, en mi servidor de compilación, necesito que se copie en una carpeta (esta carpeta se comprime y se envía a la implementación). Supongo que el sistema tenía una copia a nivel local y solo pensé "no, estará bien"
Instalé MVC4 a través de WPI y me ayudó.
Parece que Microsoft.Web.Infrastructure.dll no se está instalando en el GAC, incluso si .net (4.0 o 4.5 u otro) están instalados correctamente en Windows Server. En localhost (típicamente cliente de Windows), parece que está en el GAC cuando las herramientas / plataforma (Visual Studio etc.) están instaladas.
Como una solución posible, intente lo siguiente:
Ejecute el siguiente comando en la consola del Administrador de paquetes. (Si está usando Visual Studio, se puede acceder a través de las opciones de menú "Herramientas -> Administrador de paquetes de biblioteca -> Consola de Administrador de paquetes :)
PM> Install-Package Microsoft.Web.Infrastructure
Verás los siguientes mensajes si se instala con éxito.
Successfully installed ''Microsoft.Web.Infrastructure 1.0.0.0''. Successfully added ''Microsoft.Web.Infrastructure 1.0.0.0'' to Web.
Notará que Microsoft.Web.Infrastructure.dll ahora se ha agregado como referencia (se puede ver en la carpeta de referencias de su proyecto en el Explorador de soluciones)
Si observa las propiedades de esta referencia, verá que " Copiar local " se ha configurado en " Verdadero " de forma predeterminada.
Ahora cuando "publica" su proyecto, se implementará Microsoft.Web.Infrastructure.dll .
Tengo un sitio web solo para archivos. Se agregó MVC 5 a la aplicación webforms (orientación a net45). Tuve que modificar los packages.config
package id="Microsoft.AspNet.Mvc" version="5.2.3" targetFramework="net45"
a
package id="Microsoft.AspNet.Mvc" version="5.2.3" targetFramework="net45" developmentDependency="true"
para que se inicie en el cuadro local en modo de depuración (anteriormente tenía el error superior descrito). Ejecutando VS 2017 en Windows 7 ... abierto a través de Archivo> Abrir> Sitio web> Archivo (eligió el directorio raíz fuera de IIS).
Tuve el mismo problema y parecía que faltaba "Microsoft.Web.Infrastructure.dll". He intentado algunos consejos e instalado MVC`s etc. y nada ayudó. La solución fue instalar "Web Services Enhancements (WSE) 1.0 SP1 para Microsoft .NET" que incluye Microsoft.Web.Infrastructure.dll. Disponible en: http://www.microsoft.com/en-gb/download/details.aspx?id=4065
Volver a publicar el sitio solucionó el problema por mí.
Yo tuve el mismo problema. Cuando probé la respuesta aceptada (rockyb), recibí el mensaje de que el paquete ya estaba instalado y asignado a mi proyecto. Cuando revisé la lista de referencias, NO se hizo referencia, sin embargo.
Se instaló Microsoft.Web.Infrastructure en la carpeta de paquetes de mi solución. En lugar de usar NuGet para agregar el paquete, acabo de utilizar la opción Agregar referencia. En el lado izquierdo de la ventana emergente, elegí Buscar y luego presioné el botón Examinar en la parte inferior de la ventana. Navegué a la carpeta de paquetes debajo de la carpeta en la que estaba mi solución, luego profundicé en ... / mysolution / packages / Microsoft.Web.Infrastructure.1.0.0.0 / lib / net40 y hice clic en Microsoft.Web.Infrastructure .dll. Después de hacer clic en Aceptar, el paquete apareció en mi lista de Referencias. Utilicé la opción del paquete de implementación web para implementar mi sitio web y todo funcionó.
Yo tuve el mismo problema. Intenté instalar Visual Studio 2010 SP1 pero no funcionó.
Finalmente obtengo Microsoft.Web.Infrastructure.dll del colega. Puedes encontrar el dll en la PC de tus amigos, donde el proyecto está funcionando perfectamente. Intenta buscar dll en Temp / temporales archivos ASP.NET. Vaya a Temp usando% temp% en la ventana de ejecución.
Después de obtener dll en su PC, simplemente agregue referencia a su proyecto y funcionará.
Update-Package -reinstall Microsoft.Web.Infrastructure
no funcionó para mí, ya que seguí recibiendo errores de que ya estaba instalado.
Tuve que navegar a la carpeta Microsoft.Web.Infrastructure.1.0.0.0 en la carpeta de paquetes y eliminar manualmente esa carpeta.
Después de hacer esto, ejecuta Install-Package Microsoft.Web.Infrastructure
instalado.
Nota: CopyLocal
se estableció automáticamente en verdadero.