web-dev-qa-db-fra.com

La tentative de 'System.Web.Mvc.PreApplicationStartCode.Start ()' à la méthode critique 'System.Web.WebPages.Razor.PreApplicationStartCode.Start ()' a échoué.

Mon application fonctionnait bien et après avoir effectué certaines mises à niveau, j'obtiens cette erreur.

Erreur serveur dans l'application '/'.


La tentative d'accès à la méthode critique de sécurité 'System.Web.Mvc.PreApplicationStartCode.Start()' par la méthode transparente de sécurité 'System.Web.WebPages.Razor.PreApplicationStartCode.Start()' a échoué . Description: une exception non gérée s'est produite lors de l'exécution de la demande Web en cours. Consultez la trace de la pile pour plus d’informations sur l’erreur et son origine dans le code. 

Détails de l'exception: System.MethodAccessException: La tentative d'accès à la méthode critique de sécurité 'System.Web.Mvc.PreApplicationStartCode.Start()' par la méthode transparente de sécurité 'System.Web.WebPages.Razor.PreApplicationStartCode.Start()' a échoué.

Erreur source : Une exception non gérée a été générée lors de l'exécution de la requête Web en cours. Les informations concernant l'origine et l'emplacement de l'exception peuvent être identifiées à l'aide de la trace de pile d'exceptions ci-dessous.

Informations sur la version : Microsoft .NET Framework Version: 4.0.30319; Version ASP.NET: 4.0.30319.18055

Je ne me souviens pas des mises à jour que j'ai faites. Y'a t'il un moyen d'arranger cela?

59
TylarBen

Je pense que le problème a été résolu, mais sinon, utilisez ce paquet de Nuget:

Install-Package Microsoft.AspNet.Mvc -Version 5.0.0

J'ai perdu un jour pour cette erreur mais cette seule ligne a fait le travail pour moi

71
Vivekh

a tenté . . . Install-Package Microsoft.AspNet.Mvc -Version 5.0.0

et. . . Install-Package -Id Microsoft.AspNet.WebHelpers

les deux sans succès, a finalement dû mettre à jour tous les paquets via Nuget. . travaillé!!

http://www.3dbuzz.com/forum/threads/202082-ASP-net-MVC-Error-before-application-start

Si vous utilisez Visual Studio, ouvrez les fenêtres des packages de nuget et exécutez Update-Package, cela mettra à jour toutes vos dll avec la dernière version. Si cela ne fonctionne toujours pas, voir cette page: http://www.asp.net/mvc/tutorials/mvc-5/how-to-upgrade-an-aspnet-mvc-4-and-web-api-project-to-aspnet-mvc-5- et-web-api-2

13
defcde

J'ai eu cette erreur lors du déploiement d'un site sur lequel Mvc avait été mis à niveau de 4 à 5 mais je n'avais pas mis à jour web.config.

Changer de ceci:

<dependentAssembly>
  <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" />
  <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
</dependentAssembly>

pour ça:

<dependentAssembly>
  <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" />
  <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
</dependentAssembly>

résolu le problème pour moi.

7
Fredrik Stolpe

Pour moi aussi la même erreur s'est produite. Cela a été corrigé en installant le paquet NuGet

  Install-Package -Id  Microsoft.AspNet.WebHelpers
6
dnyaneshwar

J'ai eu un problème similaire et je l'ai résolu en me basant sur l'article Mise à jour de Razor 2.0 à 3.0 avec Asp.net MVC par Anthony Fassett

Le bloc de code suivant était absent de mon Web.Config:

<dependentAssembly>
  <assemblyIdentity name="System.Web.WebPages.Razor" publicKeyToken="31bf3856ad364e35" />
  <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
4
user3383724

J'ai résolu mon problème en appliquant la commande "Install-Package Microsoft.AspNet.Mvc".

Après cela, j'ai résolu mon projet avec une API Web.

1
Alison Alves

Dans mon cas, une installation de nuget avait changé mon Web.Config:

    <dependentAssembly>
    <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
    <bindingRedirect oldVersion="1.0.0.0-5.1.0.0" newVersion="1.1.0.0" />
  </dependentAssembly>

newVersion="1.1.0.0" ** devrait êtrenewVersion="5.1.0.0"

1
Michael Rodrigues

Il existe plusieurs solutions à ce problème:

  • Suivez le tutoriel sur la mise à niveau de votre solution asp.net
  • N'oubliez pas de supprimer la dll Microsoft-Web-Helpers et d'installer le package de nuget Microsoft.AspNet.WebHelpers.

Ensuite, assurez-vous d’avoir mis à jour tous vos paquets de nugets (utilisez "Upgrade-Package") et vérifiez votre DLL dans web.config.

L'erreur est probablement une action dans une ancienne DLL lorsque vous convertissez votre projet.

1
NicoJuicy

Dans mon cas, c'était un problème d'incompatibilité. J'ai eu ces pacakges:

  • Microsoft.AspNet.Mvc version 4.x
  • Microsoft.AspNet.Razor et Microsoft.AspNet.WebPages, version 3.x

Je suppose que la mise à niveau de Mvc à 5.x aurait fonctionné, mais que je devais conserver Mvc 4.x, j'ai donc dû rétrograder Razor et Mvc à 2.x. Pour ce faire, il vous suffit d'installer l'ancienne version, comme ceci:

Install-package Microsoft.AspNet.WebPages -version 2.0.30506
Install-Package Microsoft.AspNet.Razor -Version 2.0.30506

Après la rétrogradation de ces packages, la première erreur a disparu, mais il y avait encore une autre erreur liée à un problème dans web.config. J'ai dû changer la redirection de liaison pour Razor:

<dependentAssembly>
     <assemblyIdentity name="System.Web.Razor" ... />
  <!--bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" /-->
     <bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
</dependentAssembly>

Je ne sais pas pourquoi, mais la redirection de liaison n'a pas été mise à jour par l'installation de Nuget, ce qui aurait dû être fait.

1
JotaBe

Clic droit sur projet -> Gérer les paquets Nuget pour trouver une solution à trouver

Microsoft.AspNet.Mvc et Microsoft.Net.Compilers update des dernières versions 

1
Hadnazzar

J'ai reçu cette erreur lorsque j'ai mis à niveau un paquet NuGet - ' Microsoft.AspNet.Web Pages ' version 3.2.3. J'utilise VS2012 pour démarrer une nouvelle application Web Vanilla ' ASP.NET MVC 4 ' avec modèle ' Application Internet ' à l'aide de l'authentification Windows ou de l'authentification Windows Azure.

La mise à jour n'est peut-être pas compatible avec d'autres composants, et ces autres composants doivent également être mis à niveau. D'autres réponses suggèrent de mettre à jour Microsoft.AspNet.Mvc , Microsoft.Net.Compilers et/ou Microsoft.AspNet.WebHelpers .

0
barrypicker

Je travaille sur API Web ASP.NET project et récupère le même problème après avoir ajouté le nuget suivant CacheCow.Server.EntityTagStore.SqlServer

Il a résolu d'installer celui-ci

Install-Package Microsoft.AspNet.Mvc
0
reza.cse08

Install-Package -Id Microsoft.AspNet.WebHelpers

Package d'installation Microsoft.AspNet.Mvc -Version 5.0.0 

Cela a fonctionné pour moi

0
priyanka