La migration de mon MVC 3 application MVC 4
Je ne sais vraiment pas quoi faire, je suis cet article qui montre comment migrer mon MVC 3 application manuellement .
J'ai suivi toutes les étapes mais lors de l'exécution de mon application, l'erreur suivante se produit:
Erreur de serveur dans l'Application'/'.
Impossible de charger le fichier ou l'assembly 'Système.Web.Les pages web.Rasoir,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 " ou
l'une de ses dépendances. L'assemblée manifeste définition
ne correspond pas à la référence d'assembly. (Exception de HRESULT:
0x80131040)Description: Une exception non gérée s'est produite lors de l'exécution de
la demande web actuelle. Veuillez consulter la trace de la pile pour plus d'
informations sur l'erreur et où elle a son origine dans le code.Détails De L'Exception: System.IO.FileLoadException: impossible de charger le fichier ou l'
assemblage du Système.Web.Les pages web.Rasoir, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35' ou une de ses dépendances. L'
situé à l'assemblée manifeste définition ne correspond pas à l'assemblée
de référence. (Exception de HRESULT: 0x80131040)Source De L'Erreur:
Une exception non gérée s'est produite lors de l'exécution de la
demande web actuelle. Informations concernant l'origine et l'emplacement de
l'exception peut être identifié à l'aide de la trace de pile d'exception ci-dessous.De l'assemblée de la Charge de Trace: Les informations suivantes peuvent être utiles à
déterminer pourquoi l'assemblée " du Système.Web.Les pages web.Rasoir,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
n'a pas pu être chargé.WRN: Assemblée de liaison de la journalisation est DÉSACTIVÉE. Pour activer la liaison d'assembly
l'échec de la journalisation, définissez la valeur de registre
[HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) à 1. Remarque: Il N'
est certains de la performance de la pénalité associée avec l'échec de liaison d'assembly
la journalisation. Pour désactiver cette fonction, supprimez la valeur de registre
[HKLM\Software\Microsoft\Fusion!EnableLog].Trace De La Pile:
[FileLoadException: impossible de charger le fichier ou l'assembly
'Système.Web.Les pages web.Rasoir, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35' ou une de ses dépendances. L'
situé à l'assemblée manifeste définition ne correspond pas à l'assemblée
de référence. (Exception de HRESULT: 0x80131040)]
Microsoft.Web.Les échantillons.PreApplicationStartCode.Start() +0[InvalidOperationException: Le pré-démarrage de l'application d'initialisation
méthode de Démarrage de type Microsoft.Web.Les échantillons.PreApplicationStartCode
a déclenché une exception avec le message d'erreur suivant: impossible de charger
le fichier ou l'assembly 'Système.Web.Les pages web.Rasoir, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35' ou une de ses
les dépendances. L'assemblée manifeste définition ne fait pas de
match de l'assemblée de référence. (Exception de HRESULT: 0x80131040).]
Système.Web.La Compilation.BuildManager.InvokePreStartInitMethods(ICollection`1
méthodes) +423
Système.Web.La Compilation.BuildManager.CallPreStartInitMethods() +306
Système.Web.De l'hébergement.HostingEnvironment.Initialiser(ApplicationManager
appManager, IApplicationHost appHost, IConfigMapPathFactory
configMapPathFactory, HostingEnvironmentParameters hostingParameters,
PolicyLevel policyLevel, Exception appDomainCreationException) +677[HttpException (0x80004005): Le pré-démarrage de l'application d'initialisation
méthode de Démarrage de type Microsoft.Web.Les échantillons.PreApplicationStartCode
a déclenché une exception avec le message d'erreur suivant: impossible de charger
le fichier ou l'assembly 'Système.Web.Les pages web.Rasoir, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35' ou une de ses
les dépendances. L'assemblée manifeste définition ne fait pas de
match de l'assemblée de référence. (Exception de HRESULT: 0x80131040).]
Système.Web.HttpRuntime.FirstRequestInit(HttpContext contexte) +9079340
Système.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext contexte) +97
Système.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest
wr, HttpContext contexte) +256Informations De Version: Microsoft .NET Framework Version:4.0.30319;
ASP.NET Version:4.0.30319.237
J'ai regardé le code, mais je ne vois aucune référence au Système.Web.Les pages web.Rasoir dans la version 1.0 à la version 2.0 uniquement.
Vous devez vous connecter pour publier un commentaire.
Utiliser NuGet et ajouter le package Microsoft.AspNet.Mvc (Microsoft Asp.Net Mvc 4). Cette mise à niveau de vos références. Voir:
Vous devez mettre à jour les références d'assembly dans votre site web.config.
Supprimer à partir de la racine web.config:
Ajouter à la racine web.config:
Vues/Web.Config:
Changer de Rasoir de 1.0.0.0 à 2.0.0.0:
<add key="webpages:Version" value="1.0.0.0"/>
que j'avais dans ma config racine.Vous avez oublié de mettre à jour les références
Views\Web.Config
? Les références dans elle est utilisée pour construire la vue pages.Je suppose que vous avez MVC3 web de l'Intranet de l'application, lors de la mise à niveau de MVC3 à MVC4 à l'aide de NuGet, votre application sur le Système de références.Web.Les pages web.Rasoir Version 2.0.0.0, PAS de Système.Web.Les pages web.Rasoir Version 1.0.0.0 plus. Ici, c'est ma façon de résolution de la référence.
Il y a deux endroits à corriger:
Dans la racine web.config,
changer de Version=1.0.0.0 pour la Version=2.0.0.0
De sorte que votre nouvelle référence ressemblera à ceci:
Espère que cela aide!
De réinstaller le AspNetSprite paquets comme suggéré ci-dessus ne résout pas le problème pour moi. Mais l'ajout de ces lignes sur le runtime\assemblyBinding section de la racine web.fichier de configuration fonctionne :
Avez-vous cherché à l'échelle mondiale pour Système.Web.Les pages web.Rasoir, Version=1.0.0.0 dans l'ensemble de votre solution? Avez-vous encore de référence
System.Web.WebPages.Razor
(Version 1.0.0.0)? Faites-vous référenceSystem.Web.WebPages.Razor
Version 2.0.0.0?[Mise à jour] j'ai finalement couru dans la même question. Il semble que l'un des packages NuGet j'ai installé et désinstallé n'a pas entièrement supprimer la référence à
System.Web.Razor
qu'il a utilisés. La solution de nettoyage n'a pas d'aide parce que la DLL n'est pas utilisé directement par l'application web. J'ai finalement réussi à le faire fonctionner manuellement la suppression de l'ensemble bin répertoire ...Vérifier sur le web.config à l'intérieur de votre dossier de vues.
Mise à JOUR:
Ce morceau ressemble suspcious.
Êtes-vous référence à l'application de l'échantillon des bibliothèques, comme MVC contrats à terme ou quelque chose comme ça?
Microsoft.Web.Samples.PreAppliaction...
- je utiliserElmah
,Melezes
,Mvc.Mailer
etAutoMapper
Microsoft.Web.Samples.ImageOptimizationFramework
etMicrosoft.Web.Samples.SpriteHelper
.. Mais je ne comprends pas comment il peut provoquer cette erreur. Si c'est ce qui en est la cause.Mon application utilisé un logiciel tiers, la AspNetSprites-MvcAndRazorHelper. Réinstallé ce package et de l'erreur de référence a été corrigé.
C'est un autre package Nuget que u peut utiliser pour mettre à niveau mvc 3 à mvc 4
https://nuget.org/packages/UpgradeMvc3ToMvc4
c'est très simple, lorsque vous mettez à jour à la MVC 4.0.0.0 ,mais le webconfig dans la solution des points encore à MVC 3.0.0.0.0.
donc, il suffit de remplacer MVC version 3.0.0.0.0. par 4.0.0.0.0
Faire de même avec d'autres assemblées, pour vérifier la version de l'assemblée , vérifiez les propriétés de l'assemblée respective dans les références dans votre projet.