ASP.NET: cette méthode ne peut pas être appelée pendant l'étape d'initialisation de l'application avant le démarrage

j'essaie d'obtenir un ASP.NET MVC 3 site tournant sur IIS 6.0.

Actuellement, lorsque je demande une page au serveur, il donne l'erreur suivante:

Message d'erreur

Parser: cette méthode ne peut pas être appelée pendant l'étape d'initialisation de l'application avant le démarrage.

sur cette ligne:

<add name="MyMembershipProvider" type="NS.MyMembershipProvider" connectionStringName="MyDatabase" applicationName="/MySite"/>

je suis complètement perplexe ASP.NET le cycle de vie de l'application, sans parler des différences entre 6.0 et 7.0. La lecture des pages du MSDN à ce sujet n'a pas semblé vous aider beaucoup.

est-ce que quelqu'un a des idées ou des liens intéressants pour une enquête? :)

133
demandé sur Nkosi 2011-01-07 17:45:17

5 réponses

ajoutez ceci dans votre web.config (dans la section Applications):

<add key="enableSimpleMembership" value="false"/>
<add key="autoFormsAuthentication" value="false"/>

EDIT:

pour ceux qui se demandent pourquoi, c'est une question connue décrite dans la mvc 3 notes de mise à jour Plus de détails ici

250
répondu Gregoire 2013-03-22 11:57:08

après avoir mis à jour certaines de mes applications de ASP.NET MVC3 à MVC4 j'ai eu cette erreur. C'est le résultat des assemblées WebMatrix (WebMatrix.WebData.dll et WebMatrix.Données.DLL.) J'ai supprimé ces références et assemblages du répertoire / bin et cela a réglé le problème.

39
répondu Justin Helgerson 2012-09-13 14:48:26

@Ek0nomik a raison. Nous avons migré du MembershipProvider au nouveau ExtendedMembershipProvider nous permettant de profiter de certaines des nouvelles fonctionnalités offertes dans le WebMatrix espace de nom. Par défaut, L'adhésion Simple est activée pour une raison ou une autre, nous avons donc dû la désactiver explicitement car nous ne voulions pas aller aussi loin que l'utilisation du SimpleMembershipProvider .

Tout ce que nous avions à faire était d'ajouter ceci au web.config:

<add key="enableSimpleMembership" value="false"/>

ayant une adhésion Simple activée a provoqué l'exécution du code D'initialisation du fournisseur avant le handler Application_Start. Notre structure d'application exige que App_Start soit la première chose à exécuter. Personnellement, je m'y attendais toujours, mais le simple fait d'être membre change ce comportement. Méfier.

7
répondu Andy McCluggage 2013-10-08 12:04:31

Eh bien, je viens d'obtenir cette erreur, et il résulte d'avoir accidentellement copié un .cshtml dans la racine de mon projet. Il n'a même pas été inclus dans le projet. Supprimé et l'erreur a disparu. C'était avec MVC3 sur IIS7. J'imagine que certaines personnes se ce problème sont dans le même bateau.

6
répondu David Hammond 2012-12-01 00:04:06

ceci est causé par un certain nombre d'appels de réflexion effectués trop tôt dans une demande. Il se trouve que C'est le Web.Config suggestions dans d'autres réponses empêché un tel appel de Réflexion. Dans mon cas cependant:

J'utilise Entity Framework, et j'ai lancé update-database . J'ai eu:

cette méthode ne peut pas être appelée pendant la phase d'initialisation pré-démarrage de l'application.

Comme il s'avère que nous avions du code qui utilisait une bibliothèque qui a été récemment modifiée pour obtenir tout le code dans tous les namespaces/projets. Plus précisément, il a appelé:

System.Web.Compilation.BuildManager.GetReferencedAssemblies()

Kaboom. Qui a causé cette erreur obscure. Les Migrations EF s'exécutent dans une zone bizarre où l'application est à moitié en cours d'exécution et à moitié pas, ce qui signifie que la méthode ci-dessus ne peut jamais être appelée par N'importe quel code migration appellerait.

0
répondu Chris Moschini 2016-11-17 02:46:19