63 votes

Impossible d'exécuter une application web ASP.NET MVC 2 sur IIS 7.5

J'essaie d'exécuter une application web ASP.NET MVC 2 sous IIS sur Windows 7, mais j'obtiens une erreur 403.14. Voici les étapes à suivre pour reproduire cette erreur :

  1. Ouvrir Visual Studio 2010
  2. Créer un nouveau projet ASP.NET MVC 2 appelé MvcApplication1
  3. Shift+F5 pour lancer l'application. Vous devriez voir http://localhost:{random_port}/ et la page s'affichera correctement.
  4. Cliquez sur MvcApplication1 et sélectionnez "Propriétés". Allez dans la section "Web".
  5. Sélectionnez "Utiliser le serveur Web IIS local" et créez un répertoire virtuel.
  6. Économiser.
  7. Shift+F5 pour lancer l'application. Vous devriez voir http://localhost/MvcApplication1/ et une erreur IIS HTTP Error 403.14 - Forbidden The Web server is configured to not list the contents of this directory. .

Il est clair que, pour une raison quelconque, le routage ASP.NET ne fonctionne pas correctement.

Des choses auxquelles j'ai déjà pensé et que j'ai déjà essayées :

  • Vérifier que toutes les fonctionnalités d'IIS sont activées dans "Activer ou désactiver les fonctionnalités de Windows".
  • Vérification que le site web par défaut est configuré pour utiliser .NET 4.0
  • Réassignation des scripmaps ASP.NET v4 via aspnet_regiis -i dans le v4.0.30319 répertoire.

Le plus étonnant, c'est qu'il s'agit d'un juste construit machine. Nouvelle copie de Windows 7 x64 Ultimate, installation propre de Visual Studio 2010 Premium, aucun autre site web et aucun autre travail effectué.

Y a-t-il autre chose que je puisse essayer ?

Setting Visual Studio to use local IIS web server

86voto

Portman Points 15878

Ok, ce problème est résolu pour moi, en faisant ce qui suit :

La course à pied aspnet_regiis -i dans le 32 bits répertoire c:\Windows\Microsoft.NET\Framework\v4.0.30319 .

À ce stade, je ne comprends pas pourquoi le mode 64 bits ne fonctionne pas, mais je suis maintenant débloqué. J'espère que cela aidera les autres personnes qui rencontrent ce problème.

0 votes

Cela me rendait fou, quelle frustration... corrigé maintenant. Merci à tous

0 votes

Merci beaucoup, cela me rendait fou !

1 votes

Mais quelle est l'heure tardive... Cela n'a pas fonctionné pour moi. J'obtiens toujours une erreur à propos d'un document par défaut qui n'a pas été défini.

46voto

Tom Chantler Points 8266

J'ai eu exactement le même problème, merci pour votre aide.

Cependant, avez-vous essayé d'exécuter le programme aspnet_regiis -i dans l'invite de commande de Visual Studio 64 bit (avec des privilèges d'administrateur) ? Lorsque j'ai fait cela, le problème a été résolu pour le mode 64 bits.

Pour clarifier, j'ai fait un clic droit sur Visual Studio x64 Win64 Command Prompt (2010) et choisissez Exécuter en tant qu'administrateur. Ensuite, je suis allé ici :

C:\Windows\Microsoft.NET\Framework64\v4.0.30319

Et a fait ceci : aspnet_regiis -i

Et maintenant, il fonctionne parfaitement.

26voto

Rohan West Points 5914

Assurez-vous également que votre fichier de configuration contient la ligne suivante, sinon le routage ne fonctionnera pas.

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

2 votes

Avec VS 2012 utilisant IIS local (pas IIS Express), c'était la solution. Merci de votre compréhension.

0 votes

Je ne pensais pas que cela suffirait. Je suis content d'avoir essayé (pour une application .NET 4.5 MVC 4).

0 votes

Merci beaucoup ! Cela a fonctionné pour moi. Je suis nouveau en .NET, mais pourquoi cela n'aurait-il pas été inclus dans le web.config dès le départ ?

8voto

Chris Herring Points 2140

Ne pas utiliser runAllManagedModulesForAllRequests. Vous voulez laisser IIS gérer les ressources telles que les images.

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

A la place, ajoutez le module de routage MVC

<system.webServer>
  <modules>
    <remove name="UrlRoutingModule-4.0" />
    <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="" />
  </modules>
</system.webServer>

7voto

JGilmartin Points 1974

Autre chose à noter, assurez-vous que votre pool d'applications est défini comme intégré, et non comme classique.

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