Je viens d'essayer de déployer une application MVC3 dans notre environnement d'hébergement IIS7, mais on me présente l'exception suivante:
Impossible de charger le type "Microsoft.Web.Infrastructure.DynamicModuleHelper.DynamicModuleUtility" à partir de l'assembly "Microsoft.Web.Infrastructure, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35". Description: une exception non gérée s'est produite lors de l'exécution de la demande Web en cours. Veuillez consulter la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code.
Détails de l'exception: System.TypeLoadException: impossible de charger le type "Microsoft.Web.Infrastructure.DynamicModuleHelper.DynamicModuleUtility" de l'assembly "Microsoft.Web.Infrastructure, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35".
Aucune suggestion?
L'application n'est pas déployée car j'ai installé des pages Web ASP.Net et MVC3 sur le serveur Web lui-même.
Ceci est dû au fait Microsoft.Web.Infrastructure
n'est pas dans votre GAC. Vous devez ajouter cette référence à votre projet. Cliquez avec le bouton droit sur la référence et accédez aux propriétés, puis définissez la copie sur local sur true.
Sortie (ignorer le Ninject et le NCU):
Il s'avère qu'après avoir fait un nettoyage de référence, il a supprimé Microsoft.Web.Infrastructure
, mais pas du fichier packages.config. Après avoir essayé de l'ajouter à nouveau en utilisant le Package Manager Console
, Visual Studio indique qu'il est déjà installé, ce qui est faux car il a été supprimé.
J'ai ensuite supprimé la ligne de code dans le packages.config
fichier
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net45" />
et a exécuté à nouveau la commande
PM> Install-Package Microsoft.Web.Infrastructure
Après cela, maintenant cela fonctionne bien.
Microsoft.Web.Infrastructure
est maintenant un package Nuget, et il peut être ajouté à votre projet pour permettre les déploiements de répertoires bin -
Assurez-vous que le fichier racine web.config sur votre serveur (situé quelque part comme ici: C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\web.config
) a l'entrée suivante:
<configuration>
<location allowOverride="true">
<system.web>
<fullTrustAssemblies>
<add
assemblyName="Microsoft.Web.Infrastructure"
version="1.0.0.0"
publicKey="[bunch of letters and numbers]"
/>
S'il est manquant, cela signifie que quelqu'un a gâché votre installation de .NET 4.
téléchargez Microsoft.Web.Infrastructure.dll et copiez-le dans votre dossier bin!