Ich habe eine neue App mit VS 2015 RC und der MVC-Vorlage erstellt. Ohne Änderung einer Codezeile tritt der folgende Fehler auf:
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
Das erste Mal passiert es mir, also stecke ich im Moment fest
c#
asp.net
asp.net-mvc
asp.net-mvc-3
Luis Valencia
quelle
quelle
Antworten:
Ich hatte diese Situation auf dem Produktionsserver, während auf der Entwicklungsmaschine alles in Ordnung war.
Die Installation von .NET Framework 4.6 auf dem Zielcomputer hat das Problem behoben.
quelle
Es tut mir leid, dass ich zu spät zur Party gekommen bin, aber falls jemand anderes dieses Problem über einen TeamCity-Build bekommt, kann ich beschreiben, was wir tun mussten.
.NET 4.6 wurde auf unserem Build-Server (aber nicht auf dem Anwendungsserver) installiert, und RunnerType war Visual Studio (sln), und die Option Visual Studio wurde auf 2015 festgelegt.
Dies zwang den Build zur Verwendung von 4.6, und ich musste die Visual Studio-Option auf 2013 ändern, um den Build zur Verwendung von 4.5.2 zu zwingen
quelle
Nur für andere, die mit dieser Situation konfrontiert sind:
Wenn Sie in die Datei web.config schauen, werden Sie feststellen, dass Sie im
<compilation>
Tag den WerttargetFramework
auf eine Version unter 4.6 gesetzt haben. Tatsächlich haben Sie Ihre Anwendung zum Zeitpunkt der Erstellung über .NET FrameWork 4.6 oder höher veröffentlicht (entspricht ASP.NET MVC 4.6 und höher).Wenn Sie also den Wert von
targetFramework
auf 4.6 ändern, ändert sich die Form des Fehlers in:Dies ist der eigentliche Fehler, den Sie beheben können, indem Sie die entsprechende Version von .Net FrameWork in der Produktionsumgebung Ihrer Web-App installieren.
quelle
Durch das Aktualisieren von .NET Framework auf die neueste Version (4.7.2) wurde das Problem behoben. Vielen Dank an @Andrey Kovalenko für die Lösung.
Aber sollte der Fehler nicht so sein,
Ich bin nicht sicher, ob es für jeden Kunden relevant ist, sein .NET Framework zu aktualisieren. Ich hatte dieses Problem insbesondere bei installierten Windows Embedded OS- Systemen, nur in der Produktionsumgebung.
Gibt es eine andere Möglichkeit, das Verhalten von unserer Codebasis aus zu überwinden?
quelle
Ich versuche diese Lösung ohne Erfolg.
Die Lösung für mich war, in den Anwendungspool zu gehen, auf 2.0 zu wechseln, die Site im Browser auszuführen, den Fehler zu sehen (weil die Version falsch ist) und auf 4.0 und "voilà" zurückzukehren, ich habe es verstanden, die Website geöffnet.
quelle
Vielleicht ist es zu spät, aber ich habe das gleiche Problem und behoben wie unten. Ich benutze Visual Studio 2015 die Konfiguration Kompilierung auf web.config Punkt auf .NET Framework 4.6 standardmäßig aktiviert . Ich konnte nicht nur die Datei web.config bearbeiten. Wenn Sie .NET FrameWork 4.6 nicht auf dem Server installieren können und Ihre Anwendung es nicht verwendet.
quelle
In meinem Fall hatte ich eine beschädigte .NET-Installation auf meinem Windows Server 2012 R2. Ich musste eine neuere Version von .NET (v4.7.1) installieren und die Site funktioniert jetzt.
quelle
In meinem Fall habe ich keinen Zugriff auf den IIS selbst und ich hatte dieses Problem, als ich eine einzelne Methode verwendete, die nur über .net 2 nichts Besonderes enthält.
Die Lösung: Ich habe diese Methode extrahiert und eine Klassenbibliothek mit .net 2.0 erstellt, und sie funktioniert.
quelle
Ich habe 4.6.x auf 4.5.2 heruntergestuft und es hat gut funktioniert.
quelle