c# - net - Método no encontrado: ''!! 0[] System.Array.Empty()''
curso de mvc 5 asp.net pdf (9)
En mi caso, no tengo acceso al IIS en sí y estaba teniendo este problema cuando estaba usando un método único que no tiene nada especial, solo cosas de .net 2.
La solución: extraje ese método y creé una biblioteca de clases con .net 2.0 y funciona.
Creé una nueva aplicación con VS 2015 RC y la plantilla MVC y sin modificar ninguna línea de código tengo este error:
Method not found: ''!!0[] System.Array.Empty()''.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.MissingMethodException: Method not found: ''!!0[] System.Array.Empty()''.
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace:
[MissingMethodException: Method not found: ''!!0[] System.Array.Empty()''.]
SAASApp.BundleConfig.RegisterBundles(BundleCollection bundles) in C:/Proyectos/SAASApp/SAASApp/App_Start/BundleConfig.cs:29
SAASApp.MvcApplication.Application_Start() in C:/Proyectos/SAASApp/SAASApp/Global.asax.cs:18
[HttpException (0x80004005): Method not found: ''!!0[] System.Array.Empty()''.]
System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode(HttpContext context, HttpApplication app) +483
System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +118
System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context) +176
System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +350
System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +305
[HttpException (0x80004005): Method not found: ''!!0[] System.Array.Empty()''.]
System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +661
System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +96
System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +189
La primera vez me pasa, así que estoy atrapado en este momento
En mi caso, tuve una instalación corrupta de .NET en mi Windows Server 2012 R2. Tuve que instalar una versión más reciente de .NET (v4.7.1) y el sitio funciona ahora.
He bajado 4.6.xa 4.5.2 y funcionó bien.
Intento estas soluciones sin éxito.
La solución para mí fue ir al grupo de aplicaciones, pasar a 2.0, ejecutar el sitio en el navegador, ver el error (porque la versión es incorrecta) y volver a 4.0 y "voilà", lo tengo, el sitio web abierto.
Perdón por llegar tarde a la fiesta, pero en caso de que alguien más tenga este problema a través de una compilación de TeamCity, puedo describir lo que tuvimos que hacer.
.NET 4.6 se instaló en nuestro servidor de compilación (pero no en el servidor de aplicaciones), y RunnerType fue Visual Studio (sln) y la opción Visual Studio se configuró en 2015.
Esto obligó a la compilación a usar 4.6, y necesitaba cambiar la opción de Visual Studio a 2013 para forzar la compilación a usar 4.5.2
Tal vez sea demasiado tarde, pero tuve el mismo problema y lo solucioné como a continuación. Uso Visual Studio 2015, la compilación de configuración en web.config apunta a .NET FrameWork 4.6 de forma predeterminada. No podía editar solo en el archivo web.config. Si no puede instalar .NET FrameWork 4.6 en el servidor y su aplicación no lo usa.
- Vaya al menú Depurar> Propiedades [Nombre del proyecto]> Aplicación.
- elija .NET Framework 4.5 (o cualquier servidor que sea compatible y compatible con su aplicación) de la lista desplegable Target Framwork.
- Reconstruir de nuevo.
Tuve esta situación en el servidor de producción mientras estaba en la máquina de desarrollo, todo estaba bien.
La instalación de .NET Framework 4.6 en la máquina de destino ha solucionado el problema.
La actualización de .NET Framework a su última versión (4.7.2) resolvió el problema. Gracias a @Andrey Kovalenko por la solución.
Pero no debería ser el error como,
No estoy seguro de decirle a cada cliente sobre la actualización de su .NET Framework es aplicable. Tuve este problema especialmente en el sistema instalado Windows Embedded OS , solo en el entorno de producción.
¿Hay alguna otra forma de superar el comportamiento, desde nuestra propia base de código?
Solo para otros que enfrentan esta situación:
si busca en el archivo web.config, se dará cuenta de que en la etiqueta
<compilation>
tiene el valor
targetFramework
establecido en una versión inferior a 4.6.
pero, de hecho, en el momento de la compilación publicó su aplicación a través de .NET FrameWork 4.6 o superior (corresponde a ASP.NET MVC 4.6 y superior).
Entonces, si cambia el valor de
targetFramework
a 4.6, el error cambiará de forma a:
El atributo ''targetFramework'' actualmente hace referencia a una versión posterior a la versión instalada de .NET Framework.
este es el error real y lo eliminará instalando la versión adecuada de .Net FrameWork en el entorno de producción de su aplicación web.