338 votes

ASP.NET MVC sur IIS 7.5

Je suis sous Windows 7 Ultimate (64 bits) à l'aide de Visual Studio 2010 RC. Récemment, j'ai décidé d'avoir VS run/debug de mes applications sur IIS plutôt que sur le serveur de dev qui vient avec elle.

Cependant, chaque fois que j'essaie d'exécuter une application MVC, j'obtiens l'erreur suivante:

Erreur HTTP 403.14 - Interdit Le serveur Web est configuré pour ne pas afficher le contenu de ce répertoire. Détaillé

Informations D'Erreur

Module DirectoryListingModule

Notification ExecuteRequestHandler

Gestionnaire StaticFile Erreur

Code 0x00000000 Demandé

URL http://localhost:80/mySite/

Physique Chemin C:\myProject\mySite\

Méthode D'Ouverture De Session D'Ouverture De Session Anonyme

Utilisateur Anonyme

J'ai placé un default.aspx fichier dans le répertoire et j'ai reçu le message d'erreur suivant:

Erreur HTTP 500.21 - Serveur Interne Gestionnaire D'Erreur "PageHandlerFactory Intégrée" a une module incorrect "ManagedPipelineHandler" sa liste de module

Existe-il d'autres étapes que j'ai oublié de prendre pour obtenir ce travail?

Notes: j'ai installé IIS 7.5 après l'installation de VS 2010 RC. J'ai utilisé le built-in "Créer un Répertoire Virtuel" bouton sous l'onglet "Web" dans le projet MVC "Propriétés" dans Visual Studio 2010. J'ai fait en sorte que l'application est à l'aide de la ASP.NET 4 Application de la Piscine.

Ci-dessous sont installés fonctionnalités d'IIS j'ai.

alt text

499voto

Omar Points 16654

ASP.NET 4 n'a pas été enregistrée dans IIS. Avait à exécuter la commande suivante dans la ligne de commande/exécuter

32 bits (x86) Windows

%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -ir

64 bits (x64) de Windows

%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -ir

Note de David Murdoch commentaire:

Que le .version net a changé depuis cette Réponse a été publiée. Vérifier la version du cadre le dossier %windir%\Microsoft.NET\Framework64 répertoire et modifier la commande en conséquence, avant l'exécution (c'est actuellement v4.0.30319)

199voto

Mark Boltuc Points 1962

Encore une chose pour s’assurer que vous avez est la suivante dans votre fichier web.config :

77voto

Premchandra Singh Points 1164

Assurez-vous d'avoir le jeu suivant de votre site web.config:

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/> 
</system.webServer>

Meilleure solution:

Même si la solution ci-dessus fonctionne tout à fait bien, il peut causer d'autres problèmes car elle exécute tous vos enregistré HTTP modules sur chaque requête (même sur chaque demande de .jpg .gif .css .html .pdf, etc) et c'est évidemment un gaspillage de ressources. Au lieu de cela

<system.webServer>
<modules>
  <remove name="UrlRoutingModule-4.0"/>
  <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" preCondition="" />
</modules>
</system.webServer>

Assurez-vous que condition préalable de l'attribut est vide signifie qu'il fonctionnera sur toutes les demandes. [Lire la suite](http://www.britishdeveloper.co.uk/2010/06/dont-use-modules-runallmanagedmodulesfo.html,"Lire post original")

42voto

ZippyV Points 7671

Une autre raison pourquoi quelqu'un pourrait obtenir cette erreur est si le fichier Global.asax n’est dans le dossier racine plus.

20voto

toddkitta Points 375

J’ai était également recevoir cette erreur et a découvert que « Redirection HTTP » ne était pas activée dans Windows Server. Ce blog post points cela ainsi : http://blogs.msdn.com/b/rjacobs/archive/2010/06/30/system-web-routing-routetable-not-working-with-iis.aspx

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X