Versuch der transparenten Sicherheitsmethode 'WebMatrix.WebData.PreApplicationStartCode.Start ()'

176

Update: Gleiches gilt für MVC 4 bis MVC 5.

Ich habe ein neues MVC 4-Projekt gestartet und ein MVC 3-Projekt darin migriert (Controller / Modelle / Skripte usw.). Während jetzt alles kompiliert wird, erhalte ich den folgenden Fehler:

Der Versuch der transparenten Sicherheitsmethode 'WebMatrix.WebData.PreApplicationStartCode.Start ()', auf die sicherheitskritische Methode 'System.Web.WebPages.Razor.WebPageRazorHost.AddGlobalImport (System.String)' zuzugreifen, ist fehlgeschlagen.

Ich kann mit diesem Fehler nichts im Web finden. Der Fehler tritt auf, bevor Sie mit dem Start der Anwendung beginnen.

Ich habe versucht, alle Assemblys mit Nuget neu zu installieren, und eine "saubere" web.config ohne Erfolg erstellt.

Hat jemand dieses Problem schon einmal gehabt?

Elger Mensonides
quelle

Antworten:

246

Für mich war dieser Fehler darauf zurückzuführen, dass Microsoft.AspNet.WebHelpers nach dem Update von MVC 4 auf MVC 5 NICHT installiert war. Er wurde durch die Installation des NuGet-Pakets behoben

Install-Package -Id  Microsoft.AspNet.WebHelpers
Michael
quelle
1
Dies löste das Problem für mich; Es wurden einige Namespace-Probleme mit meiner ResourcesKlasse erstellt, aber ich habe es geändert Properties.Resources.xxxxxund die Probleme wurden behoben.
Cody
2
Ich habe das ausgeführt und es hat nicht funktioniert ... aber zum Glück habe ich gesehen, dass in einer anderen Antwort ein zweiter Befehl ausgeführt werden muss: stackoverflow.com/a/22587521/482256
Kevin Nelson
Dies hat es für mich behoben, aber ich brauchte auch das Folgende in Assembly-Bindungen code<dependentAssembly> <AssemblyIdentity Name = "WebMatrix.WebData" publicKeyToken = "31bf3856ad364e35" Culture = "Neutral" /> <BindingRedirect oldVersion = "0.0.0.0-3.0.0.0 "newVersion =" 3.0.0.0 "/> </ dependentAssembly>code
Marchief
Ich installiere das oben genannte Paket und das Problem ist weg. Ich habe NUget UI verwendet, um es zu installieren, und das hat auch alle Abhängigkeiten für mich installiert
Atta H.
204

Wenn Sie den Fehler erhalten

Der Versuch der transparenten Sicherheitsmethode 'WebMatrix.WebData.PreApplicationStartCode.Start ()', auf die sicherheitskritische Methode 'System.Web.WebPages.Razor.WebPageRazorHost.AddGlobalImport (System.String)' zuzugreifen, ist fehlgeschlagen.

Um dies zu beheben, installieren Sie dieses Paket mit dem NuGet-Paketmanager.

Install-Package Microsoft.AspNet.WebHelpers

Danach erhalten Sie wahrscheinlich einen weiteren Fehler

Die Assembly WebMatrix.Data Version 3.0.0.0 kann nicht geladen werden

Um dies zu beheben, installieren Sie dieses Paket mit dem NuGet-Paketmanager.

Install-Package Microsoft.AspNet.WebPages.Data
Anushka
quelle
Ich hatte genau diesen Fehler beim Upgrade auf VS 2015 RTM. Der gleiche Code lief mit VS 2013 einwandfrei. Der einzige Unterschied besteht in einer neuen .config-Datei, die 2015 für IIS generiert, von der ich vermute, dass sie von IISExpress 2013 ignoriert wird. Diese Antwort hat auch diesen Fall behoben. Fügen Sie beide Nugets hinzu.
Angularsen
Es sollte erwähnt werden, dass es mir überhaupt nicht gelungen ist, meine Website mit VS2015 RTM zu betreiben. Durch die Installation von Microsoft.AspNet.WebHelpers wurde das YSOD behoben, aber dann trat aufgrund einiger SQL-Zugriffsrechte eine Zeitüberschreitung auf. Der exakt gleiche Code lief in VS2013 einwandfrei.
Angularsen
1
Ich habe dieses Problem mit VS 2013 Express Edition beim Upgrade von ASP .NET MVC 4 auf ASP .NET MVC 5 festgestellt. Dies war hilfreich, da @Anushka das zweite Problem mit einer Lösung gemeldet hat.
Jerameel Resco
Ich erhalte diesen Fehler, als ich versuchte, meine Lösung in VS 2015 auszuführen. In VS 2013 funktioniert sie einwandfrei. Die Installation der beiden Pakete wie vorgeschlagen funktioniert, ich bin mir jedoch nicht sicher, warum ich sie installieren muss. Ich habe andere Lösungen, die ich in VS 2013 entwickelt habe und die diesen Fehler in VS 2015 nicht erhalten.
John81
2
Wir haben festgestellt, dass VS2015 beschließt, einige WebMatrix-DLLs beim Kompilieren in das bin-Verzeichnis der Webanwendung zu stellen - VS2013 tut dies nicht. Ich weiß nicht, woher 2015 diese DLLs bezieht, aber sie müssen eine andere Version sein als die DLLs, die vom GAC geladen werden (ich denke), wenn Sie die von VS2013 kompilierte App ohne die WebMatrix-DLLs explizit starten im App Bin-Verzeichnis enthalten. Beachten Sie, dass das Problem behoben wird, wenn Sie die 4 WebMatrix-Dateien aus der Ausgabe 2015 löschen und IIS neu starten.
Simon Green
19

Für alle, die hier landen und versuchen, ein Upgrade von MVC 4 auf MVC5 durchzuführen, konnte ich dieses Problem beheben, indem ich den Anweisungen unter http://www.asp.net/mvc/tutorials/mvc-5/how-to-upgrade folgte -an-aspnet-mvc-4-und-web-api-projekt-zu-aspnet-mvc-5-und-web-api-2 .

Ich musste auch das Paket "Microsoft.AspNet.WebApi.WebHost" von nuget installieren. Aber das ist es.

Oh, und ich musste diese App erstellen. <add key="owin:AutomaticAppStartup" value="false" />

:) :)

Alex Dresko
quelle
14

Ich habe alle oben genannten Lösungen ausprobiert und es würde immer noch nicht funktionieren, bis ich feststellte, dass das Kompilierungselement web.config auf Version 2.0.0.0 von WebMatrix.Data und WebMatrix.WebData verweist. Das Ändern der Version dieser Einträge in der web.config auf 3.0.0.0 hat mir geholfen.

Paul
quelle
10

Ich habe beim Upgrade mvc 4auf Folgendes mit einem ähnlichen Problem zu kämpfen mvc 5:

Der Versuch der transparenten Sicherheitsmethode 'System.Web.WebPages.Administration.SiteAdmin.RegisterAdminModule ()', auf die sicherheitskritische Methode 'System.Web.WebPages.ApplicationPart..ctor (System.Reflection.Assembly, System.String)' zuzugreifen, ist fehlgeschlagen.

Das Kontrollkästchen Zusätzliche Dateien löschen im Veröffentlichungsdialog hat es für mich gelöst.

Edward Olamisan
quelle
Ich hatte diesen Fehler in meiner von SharePoint 2013 Provider gehosteten App (ASP.NET MVC 5, bereitgestellt in Azure). "Zusätzliche Dateien löschen" im Veröffentlichungsdialog löste ihn auch für mich.
Anatoly Mironov
8

Die Neuinstallation Microsoft.AspNet.WebHelpersfunktioniert bei mir

Update-Package reinstall Microsoft.AspNet.WebHelpers
Pablo Claus
quelle
6

Nur noch ein Vorschlag ... Dies wurde für mich durch einige alte DLLs aus einem MVC 3-Projekt nach dem Upgrade auf MVC 5 im Ordner "Site Bin" auf dem Bereitstellungsserver verursacht. Obwohl diese DLLs nicht mehr von der Codebasis verwendet wurden, schienen sie das Problem zu verursachen. Alles wurde gereinigt und erneut bereitgestellt, und es war in Ordnung.

chris
quelle
Dies war der Grund für meinen Fehler. Ich hatte alte und neue Dateien im Ordner bin. danke
Abhinaw Sharma
5

Sie können auch erhalten:

Datei oder Assembly 'WebMatrix.Data, Version = 3.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' oder eine ihrer Abhängigkeiten konnte nicht geladen werden. Die Manifestdefinition der gefundenen Assembly stimmt nicht mit der Assemblyreferenz überein. (Ausnahme von HRESULT: 0x80131040)

Dies wurde in dieses Paket verschoben

 Install-Package Microsoft.AspNet.WebPages.Data

Sie sollten wahrscheinlich einen sauberen Build durchführen, bevor Sie eine der Antworten auf diese Frage versuchen und nachdem Sie die Pakete aktualisiert haben

Simon_Weaver
quelle
3

So habe ich dieses Problem behoben:

Öffnen Sie die Nuget Package Manager-Konsole und installieren Sie die folgenden Nuget-Pakete:

Install-Package WebMatrix.Data
Install-Package Microsoft.AspNet.WebHelpers
Update-Package

Reinigen Sie die Lösung, erstellen Sie sie neu und meine asp.net-Web-App funktioniert!

Mostafa
quelle
2

Das Löschen aller Dateien aus bin und das anschließende Neuerstellen der Lösung haben bei mir funktioniert.

Theskhan
quelle
1

Für mich wurde dieser Fehler dadurch verursacht, dass DotNetOpenAuth nach dem Upgrade von MVC4 auf MVC5 nicht mit MVC5 kompatibel war. Die Deinstallation von Microsoft.Web.WebPages.OAuth hat das Problem behoben.

Dean North
quelle
1

Ich habe es aus meinen Referenzen entfernt. Führen Sie dies dann in der Package Manager-Konsole aus

Install-Package WebMatrix.Data

Fügen Sie schließlich die WebMatrix.WebData-Assembly zu Referenzen hinzu und erstellen Sie das Projekt neu. Es funktioniert für mich. Ich hoffe, es löst auch Ihr Problem.

Ali Golgol
quelle
0

Ich habe Webapi damit über das Hilfages Nuget-Paket installiert. Dieses Paket ersetzte die meisten asp.net mvc 4-Binärdateien durch Beta-Versionen, die mit dem Rest des Projekts nicht gut zusammenarbeiteten. Fix war, die ursprünglichen MVC 4 DLLs wiederherzustellen und alles war gut.

Elger Mensonides
quelle
0

Ich hatte das gleiche Problem, ich musste MVC Future aktualisieren (Microsoft.AspNet.Mvc.Futures)

Install-Package Microsoft.AspNet.Mvc.Futures
PvtVandals
quelle
0

Für mich wurden diese Fehler durch Hinzufügen behoben

<system.web>
 <trust level="Full">
 </system.web>

in web.config

Omar Kamel
quelle