Ich versuche, eine ASP.NET MVC 3-Site unter IIS 6.0 auszuführen.
Derzeit wird beim Anfordern einer Seite vom Server der folgende Fehler angezeigt:
Parser-Fehlermeldung: Diese Methode kann während der Initialisierungsphase vor dem Start der Anwendung nicht aufgerufen werden.
in dieser Zeile:
<add name="MyMembershipProvider" type="NS.MyMembershipProvider" connectionStringName="MyDatabase" applicationName="/MySite"/>
Ich bin völlig ratlos und habe keine Ahnung vom ASP.NET-Anwendungslebenszyklus, geschweige denn von den Unterschieden zwischen 6.0 und 7.0. Das Lesen der MSDN-Seiten schien nicht viel zu helfen.
Hat jemand einen Einblick oder gute Links zur Untersuchung? :) :)
asp.net-mvc
asp.net-mvc-3
sqwerty
quelle
quelle
Antworten:
Fügen Sie dies in Ihre web.config ein (im Abschnitt appSettings):
BEARBEITEN:
Für diejenigen , die fragen , warum ist es ein bekanntes Problem in dem mvc 3 beschrieben Release Notes Weitere Details hier
quelle
Nach dem Upgrade einiger meiner Anwendungen von ASP.NET MVC3 auf MVC4 wurde dieser Fehler angezeigt. Dies war ein Ergebnis der WebMatrix-Assemblys (WebMatrix.WebData.dll und WebMatrix.Data.dll). Ich habe diese Referenzen und Assemblys aus dem Verzeichnis / bin entfernt und das Problem wurde behoben.
quelle
@ Ek0nomik ist richtig. Wir sind von der
MembershipProvider
auf die neueExtendedMembershipProvider
umgestiegen, um einige der neuen Funktionen des WebMatrix- Namespace nutzen zu können. Standardmäßig ist die einfache Mitgliedschaft aus irgendeinem Grund aktiviert, daher mussten wir sie explizit deaktivieren, da wir nicht so weit gehen wollten, die zu verwendenSimpleMembershipProvider
.Alles was wir tun mussten, war dies zur web.config hinzuzufügen:
Wenn die einfache Mitgliedschaft aktiviert war, wurde der Provider-Initialisierungscode vor dem Application_Start-Handler ausgeführt. Unsere App-Struktur erfordert, dass App_Start als erstes ausgeführt wird. Persönlich würde ich das immer erwarten, aber Simple Membership ändert dieses Verhalten. In acht nehmen.
quelle
Nun, ich habe gerade diesen Fehler erhalten, der darauf zurückzuführen ist, dass ich versehentlich eine .cshtml in das Stammverzeichnis meines Projekts kopiert habe. Es war nicht einmal im Projekt enthalten. Löschte das und der Fehler ging weg. Dies war mit MVC3 auf IIS7. Ich stelle mir vor, dass einige der Leute, die dieses Problem bekommen, im selben Boot sitzen.
quelle
Dies wird dadurch verursacht, dass eine Reihe von Reflection-Aufrufen in einer Anwendung zu früh ausgeführt wird. Es ist einfach so, dass die Web.Config-Vorschläge in anderen Antworten einen solchen Reflection-Aufruf verhinderten. In meinem Fall jedoch:
Ich verwende Entity Framework und bin gelaufen
update-database
. Ich habe:Wie sich herausstellte, hatten wir Code, der eine Bibliothek verwendete, die kürzlich geändert wurde, um den gesamten Code in allen Namespaces / Projekten abzurufen. Insbesondere hieß es:
Kaboom. Das verursachte diesen obskuren Fehler. EF-Migrationen werden in einer verrückten Zone ausgeführt, in der die Anwendung zur Hälfte und zur Hälfte nicht ausgeführt wird. Dies bedeutet, dass die oben beschriebene Methode von keinem Code aufgerufen werden kann, den Migrations aufrufen würde.
quelle