À l'origine, j'avais déployé le site avec une partie de la DLL configurée pour copier en local (comme suggéré par une autre SO publication). Après cet échec, j'ai installé le package MVC 3 sur le serveur.
Lorsque je visite mon site, je reçois:
Liste de répertoires refusée cette virtuelle Répertoire ne permet pas le contenu à être répertorié.
J'ai vu le blog de haacked , mais il a presque 3 ans maintenant et une partie ne fonctionne tout simplement plus. Est-ce que quelqu'un sait ce qu'il faut faire pour que cela fonctionne après l'installation de MVC 3 sur le serveur?
METTRE À JOUR
J'ai trouvé un autre link sur le blog de haacked. Apparemment, cela devrait fonctionner (pas besoin de faire des mappages génériques). Le répertoire virtuel de mon site Web est configuré pour exécuter ASP.NET 4.0.30319. J'ai installé ASP.NET MVC 3 et j'exécute IIS6 (Windows Server 2003 R2, je suis sûr que c'est IIS6).
Le répertoire virtuel a été défini sur ASP.NET 4.0. Pendant ce temps, le "Site Web par défaut" était configuré pour exécuter ASP.NET 2.0. J'ai changé le "Site Web par défaut" pour exécuter 4.0 en plus de la virt. répertoire et il a commencé à fonctionner. La raison est un mystère pour moi, mais cela a fonctionné.
On dirait que vous n'avez pas configuré le mappage générique. Vous devez configurer un mappage dans IIS qui envoie toutes les demandes au pipeline ASP.NET pour traitement. Étant donné que le mappage n'est pas configuré, la requête est interprétée comme une navigation dans un répertoire (ce qui est probablement interdit dans votre configuration).
Je pense que la fonctionnalité ASP.NET 4 URL sans extension ne fonctionne pas pour le répertoire virtuel sur iis v6, à moins que Site Web par défaut soit également configuré pour exécuter ASP.NET v4.0 . Pour moi, définir ASP.NET v4.0 sur Web par défaut Site n'est pas une option car il casse les applications Web existantes du répertoire virtuel v2.0 . L'ajout de cartes d'application génériques sur le répertoire virtuel mvc3 a fonctionné pour moi . Voici la liste des étapes que j'ai effectuées pour déployer mvc sur iis6.
A PROPOS DE WILCARD APPLICATION MAP : Sachez que cette option force IIS à intercepter toutes les demandes adressées au serveur Web. Cela inclut les demandes d'images, de pages classiques ASP et de pages HTML. Par conséquent, l'activation d'un mappage de script générique sur ASP.NET a des conséquences sur les performances.
AUTRE SOLUTION: Dans W2K3 SP2 avec IIS6, .NET Framework (2, 3.5, 4).
Aller au registre:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ASP.NET\4.0.30319.0
Si nécessaire, créez DWORD EnableExtensionlessUrls avec la valeur 0 .
Ensuite, à partir de la fenêtre de commande, exécutez: resetiis
Créez une application ASP.NET à partir du modèle MVC3.
Maintenant, dans le global.asax, configurez les routes comme ceci:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
//routes.MapRoute(
// "Default", // Route name
// "{controller}.mvc/{action}/{id}", // URL with parameters
// new { controller = "Home", action = "Index", id = "" } // Parameter defaults
//);
routes.MapRoute(
"Default",
"{controller}.aspx/{action}/{id}",
new { action = "Index", id = "" }
);
routes.MapRoute(
"Root",
"",
new { controller = "Home", action = "About", id = "" }
);
}
Créez AppPool pour .NET Framework 4 et configurez l'application Web pour qu'elle puisse utiliser cette réserve. Vous pouvez utiliser le commutateur de version ASP.NET de Denis Bauer ou utiliser Aspnet_regiis.exe.
RÉSULTAT: le navigateur affiche la page À propos de comme page par défaut.