wake-up-neo.net

Methode nicht gefunden: '!! 0 [] System.Array.Empty ()'

Ich habe eine neue App mit VS 2015 RC und der MVC-Vorlage erstellt und ohne Änderung einer Codezeile habe ich folgenden Fehler:

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

111
Luis Valencia

Ich hatte diese Situation auf dem Produktionsserver, während auf der Entwicklungsmaschine alles in Ordnung war.

Das Installieren von .NET Framework 4.6 auf dem Zielcomputer hat das Problem behoben.

214

Es tut mir leid, dass ich zu spät zur Party komme, aber falls jemand anderes dieses Problem über einen TeamCity-Build bekommt, kann ich beschreiben, was wir zu tun hatten.

.NET 4.6 wurde auf unserem Build-Server installiert (jedoch nicht auf dem Anwendungsserver), und der RunnerType war Visual Studio (sln), und die Visual Studio-Option 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

25
gautejohan

Nur für andere, die mit dieser Situation konfrontiert sind:

wenn Sie in die Datei web.config schauen, werden Sie feststellen, dass in <compilation> Tag Sie haben den Wert targetFramework auf eine Version unter 4.6 gesetzt. Tatsächlich haben Sie Ihre Anwendung jedoch 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 in 4.6 ändern, ändert sich die Form des Fehlers in:

Das Attribut 'targetFramework' verweist derzeit auf eine Version, die älter als die installierte Version von .NET Framework ist.

dies ist der eigentliche Fehler. Sie können ihn beheben, indem Sie die entsprechende Version von .Net FrameWork in der Produktionsumgebung Ihrer Web-App installieren.

10
AmiNadimi

Durch Aktualisieren des .NET Framework auf das neueste (4.7.2) wurde das Problem behoben. Vielen Dank an @Andrey Kovalenko für die Lösung.

Aber sollte der Fehler nicht so sein,

enter image description here

Ich bin mir nicht sicher, ob es für jeden Kunden relevant ist, sein .NET Framework zu aktualisieren. Ich hatte dieses Problem vor allem bei Windows Embedded OS installierten Systemen, nur in der Produktionsumgebung.

Gibt es eine andere Möglichkeit, das Verhalten von unserer Codebasis aus zu überwinden?

2
Naveen Kumar V

Ich versuche diese Lösung ohne Erfolg.

Die Lösung für mich war, in den Anwendungspool zu gehen, auf 2.0 umzuschalten, die Site im Browser auszuführen, den Fehler zu sehen (weil die Version falsch ist) und wieder auf 4.0 umzuschalten und "voilà", ich habe es verstanden, die Website zu öffnen.

1
Roberto Gentile

In meinem Fall habe ich keinen Zugriff auf IIS) und ich hatte dieses Problem, als ich eine einzelne Methode verwendete, die nichts Besonderes enthält, nur Dinge aus .net 2.

Die Lösung: Ich habe diese Methode extrahiert und eine Klassenbibliothek mit .net 2.0 erstellt und es funktioniert.

0
Ricardo França

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.

0

Ich habe 4.6.x auf 4.5.2 heruntergestuft und es hat gut funktioniert.

0
Bhavesh Patel

Vielleicht ist es zu spät, aber ich habe das gleiche Problem wie unten behoben. Ich benutze Visual Studio 2015, die Konfiguration Kompilierung in der web.config zeigt standardmäßig auf .NET FrameWork 4.6. Ich konnte 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.

  1. Gehen Sie zu Menü Debug> [Projektname] Eigenschaften> Anwendung.
  2. wählen Sie in der Dropdown-Liste Target Framwork das .NET Framework 4.5 (oder einen beliebigen Server, der Ihre Anwendung unterstützt und kompatibel ist).
  3. Wieder neu erstellen.
0