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

146

Je viens de créer un nouveau site Web vide dans Visual Studio 2012 et j'ai cliqué sur exécuter (c'est-à-dire afficher dans le navigateur) et j'obtiens cette erreur:

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

Je suis entré dans IIS et j'ai cliqué sur la navigation dans l'annuaire, puis je me suis assuré que la navigation dans l'annuaire était activée, mais j'obtiens toujours cette erreur. Je ne peux pas comprendre ?

Le projet de site Web que je viens de créer n'est pas répertorié dans les sites Web par défaut du gestionnaire IIS, ce que j'ai trouvé étrange.

Comment puis-je me débarrasser de cette erreur?

Aindriu
la source
Le projet est-il configuré pour utiliser IIS? Ou IIS Express? Ou Casini?
Kris Vandermotten
Avez-vous exécuté ou affiché dans le navigateur ? 2 choses différentes. S'il s'agit d'un projet MVC, vous avez peut-être essayé d'afficher un viewdans un navigateur?
christiandev
Veuillez vous assurer que vous avez activé ASP.NET 4.5 ou ASP.NET à partir du Panneau de configuration \ Tous les éléments du Panneau de configuration \ Programmes et fonctionnalités \ Activer ou désactiver les fonctionnalités Windows \ Internet Information Services \ World Wide Web Services \ Application Developement Features \ ASP.NET 4.5 ou ASP.NET 3.5 selon les paramètres de votre pool d'applications.
Bimal Das

Réponses:

142

conservez-le dans votre fichier de configuration Web, puis renommez la valeur ajoutée = "yourwebformname.aspx"

<system.webServer>
    <defaultDocument>
       <files>
          <add value="insertion.aspx" />
       </files>
    </defaultDocument>
    <directoryBrowse enabled="false" />
</system.webServer>

autre

<system.webServer>
    <directoryBrowse enabled="true" />
</system.webServer>
NASSER
la source
1
Je travaille sur ce projet depuis des mois - je n'ai jamais eu besoin de cette ligne. J'ai publié le site aujourd'hui et il ne fonctionnerait plus en débogage !!! Ajout de cette ligne le fait fonctionner à nouveau! J'ai vérifié SVN - je n'en ai certainement jamais eu besoin auparavant. WTF !? Merci quand même, je n'ai perdu qu'une heure :)
Percy
J'obtiens l'erreur HTTP 500.22 - Erreur de serveur interne.
Bryan Labuschagne
40

Ce problème se produit car la fonctionnalité n'est pas Directory Browsingactivée sur le site Web et le document par défaut n'est pas configuré. Pour résoudre ce problème, appliquez l'une des méthodes suivantes. Pour résoudre ce problème, j'ai suivi les étapes de la méthode 1 comme mentionné dans la page MS Support et c'est la méthode recommandée.

Méthode 1: activer la fonctionnalité de navigation dans l'annuaire dans IIS (recommandé)

  1. Démarrez IIS Manager. Pour ce faire, cliquez sur Démarrer, sur Exécuter, tapez inetmgr.exe et puis cliquez sur OK.

  2. Dans le Gestionnaire des services Internet (IIS), développez le nom du serveur, développez les sites Web, puis cliquez sur le site Web que vous souhaitez modifier.

  3. Dans la vue Fonctionnalités, double-cliquez sur Navigation dans l'annuaire.

  4. Dans le volet Actions, cliquez sur Activer.

Si cela ne fonctionne pas, vous pourriez avoir un problème différent d'un simple problème de liste de répertoires. Alors suivez l'étape ci-dessous,

Méthode 2: ajouter un document par défaut

Pour résoudre ce problème, procédez comme suit:

  • Démarrez IIS Manager. Pour ce faire, cliquez sur Démarrer, sur Exécuter, tapez inetmgr.exe et puis cliquez sur OK.
  • Dans le Gestionnaire des services Internet (IIS), développez le nom du serveur, développez les sites Web, puis cliquez sur le site Web que vous souhaitez modifier.
  • Dans la vue Fonctionnalités, double-cliquez sur Document par défaut.
  • Dans le volet Actions, cliquez sur Activer.
  • Dans la zone Nom de fichier, tapez le nom du document par défaut, puis cliquez sur OK.

Méthode 3: activer la fonctionnalité de navigation dans l'annuaire dans IIS Express

Remarque Cette méthode est destinée aux développeurs Web qui rencontrent le problème lorsqu'ils utilisent IIS Express.

Suivez ces étapes:

  • Ouvrez une invite de commandes, puis accédez au dossier IIS Express sur votre ordinateur. Par exemple, accédez au dossier suivant dans une invite de commande: C:\Program Files\IIS Express

  • Tapez la commande suivante, puis appuyez sur Entrée:

    appcmd set config /section:system.webServer/directoryBrowse /enabled:true

Chanceux
la source
Cela devrait être une réponse acceptée. La méthode 2 a fonctionné pour moi. Au départ, j'ai créé un site Web vide, puis j'ai ajouté un formulaire Web nommé "WebForm1.aspx". Par conséquent, je dois ajouter ce nom dans la liste des documents par défaut. Je vous remercie.
novato le
31

Accédez à cmd et tapez ceci:

pour OS x64:% windir% \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet_regiis.exe -ir

pour OS x32:% windir% \ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_regiis.exe -ir

Cela installera la bonne version et IIS comprendra la navigation dans le répertoire MVC

Sadjad Khazaie
la source
% windir% \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet_regiis.exe -ir cela a fonctionné pour moi pour mon système 64 bits et l'application MVC
Amar Gadekar
commande pour x64 a également fonctionné pour moi pour résoudre ce problème survenu dans mon service Web asmx
Cavid
24

Il peut y avoir plusieurs raisons au problème. Celui qui a fonctionné pour moi sur IIS 8.5 était le suivant

Pas

  1. Tapez "activer ou désactiver les fonctionnalités de Windows" dans la recherche.
  2. Cliquez sur "Ajouter des rôles et des fonctionnalités" dans le Gestionnaire de serveur.
  3. Dans l'assistant, faites défiler jusqu'au serveur Web et sélectionnez: Serveur Web -> Développement d'applications. Sélectionnez tout sauf CGI dans la liste comme indiqué dans la capture d'écran

entrez la description de l'image ici

  1. Enfin, cliquez sur suivant et installez.
  2. Redémarrez IIS

Votre site Web peut commencer à fonctionner.

satish suthar
la source
18

Définissez une page de démarrage.

Quand j'ai eu ce problème, je suis allé dans l'explorateur de solutions, j'ai trouvé la page que je voulais voir en premier (dans mon cas "Home.aspx), j'ai fait un clic droit dessus et j'ai sélectionné" Définir comme page de démarrage. "Cela a résolu mon problème (qui sonnait vraiment similaire au vôtre.) C'était dans Visual Studio 2012 Professional et je l'ai exécuté dans Firefox.

joshmcode
la source
17

Essayez d'ajouter les paramètres suivants au web.configfichier.

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
Litisqe Kumar
la source
2
Erreur HTTP 500.22 - Erreur de serveur interne
Bryan Labuschagne
Mon problème est résolu, après avoir ajouté ce code dans le fichier webconfig, merci.
yadavr le
17

Je viens de coller cet extrait de code dans le fichier web.config et l'erreur a été résolue.

<system.webServer>
    <directoryBrowse enabled="true" />
</system.webServer>
Chamila Maddumage
la source
10

J'ai un remède rapide pour cela. En fait, j'ai eu cette erreur parce que je n'avais pas défini ma page Web comme page de démarrage. Lorsque j'ai créé ma page Web (html / aspx) en tant que page de démarrage définie comme indiqué ci-dessous, cette erreur a été corrigée.entrez la description de l'image ici

Je ne sais pas si cette solution aidera les autres.

Rinoy Ashokan
la source
8

Un modèle de site Web vide crée un site Web ASP.NET qui comprend un fichier Web.config mais aucun autre fichier. Cela signifie que vous n'avez aucune page par défaut à afficher lors de la navigation ou de l'exécution.

Ce message d'erreur signifie simplement que vous n'avez pas installé et configuré correctement le document par défaut sur votre IIS.

Une fois cela configuré, le message d'erreur disparaîtra.

Sain Pradeep
la source
J'ai ajouté une page maître au site Web vide et lorsque j'ai cliqué sur exécuter sans code, j'ai toujours une erreur. Je ne suis pas sûr de ce que je dois faire pour le faire fonctionner?
Aindriu
avez-vous une page par défaut dans votre site Web sinon, créez et définissez la page par défaut comme indiqué dans ce lien iis.net/learn/web-hosting/web-server-for-shared-hosting/…
Sain Pradeep
Non, je n'avais pas de page par défaut dans le site Web vide. Je suis un exemple dans un livre C #. J'ai ajouté une page par défaut et la page se chargerait dans le navigateur Web ok. Mais l'exemple n'utilisait que des pages maîtres. Je ne comprends pas pourquoi cela ne fonctionne pas. C'est un exemple très simple.
Aindriu
8

Sur le site dans IIS:

  1. sélectionnez "Paramètres avancés"
  2. Ensuite, pour le pool d'applications, choisissez "ASP.NET v4.0"

image par exemple

Vouloir faire
la source
2
Cela ne répond pas à la question d'OP. La modification du pool d'applications utilisé par un site dans IIS n'a aucun effet sur la façon dont le site est configuré pour répertorier le contenu du répertoire (ou ne pas les répertorier). Cela a à voir avec la configuration dans le fichier web.config.
JNYRanger
8

Panneau de configuration> Activer ou désactiver les fonctionnalités Windows

Internet Information Services> Services World Wide Web> Fonctionnalités de développement d'applications

Activez les deux options

Extensibilité .NET 3.5
.ASP.NET 3.5

Sous le entrez la description de l'image ici

Hakan Fıstık
la source
6

Problème

Erreur: 403.13 lors de l'exécution du site Web WebForms ASP.Net à partir de Visual Studio.

Solution

L'accès à la racine est refusé: http: // localhost: 51365

Accédez à la page de connexion ou à toute page existante et cela fonctionnera:

http: // localhost: 51365 / Login.aspx

Jeremy Thompson
la source
5

Dans mon cas, j'ai reçu la même erreur après avoir créé un projet Web Api vide.

Je l'ai résolu en éditant RouteConfig.cs dans le dossier App_Start :)

J'ai remplacé la ligne de lecture de code: -

defaults: new { action = "Index", id = UrlParameter.Optional }

avec ce qui suit: -

defaults: new { controller = "Index", action = "Index", id = UrlParameter.Optional }

Remarquez que je devais juste spécifier le contrôleur dont je voudrais appeler l'action d'index en premier.

Eh bien, toutes les réponses ci-dessus n'ont pas résolu mon cas (comme je le voulais), par exemple

  • L'activation de la navigation dans les répertoires à partir de web.config ne fait que répertorier tous les fichiers et dossiers de mon projet, comme le ferait php lorsque vous n'avez pas de fichier d'index
  • La définition de defaultDocument n'a pas non plus fonctionné pour moi, j'ai toujours l'erreur HTTP 403.14 (je ne sais toujours pas pourquoi)

S'il y a quelqu'un dans des circonstances similaires à la mienne, essayez-le.

rey_coder
la source
C'était la plupart de la réponse dont j'avais besoin. Le nom du contrôleur doit cependant correspondre à ce qui a été créé pour un nom de contrôleur d'application MVC (si vous appelez votre contrôleur IndexController, cela fonctionnerait) - donc le nom d'action par défaut sur un contrôleur devrait être Index et tout est lié ensemble - les suggestions à mon avis, utiliser la navigation dans les répertoires n'est PAS une bonne idée car cela permet à quiconque de naviguer dans le contenu de votre site dans son intégralité.
Mark
4

Dans mon cas, j'ai rencontré cette erreur car mon application Web était .NET v4 et le pool d'applications était configuré pour .NET v2.

Un double-clic sur le pool d'applications fait apparaître une fenêtre contextuelle dans laquelle nous pouvons sélectionner la version souhaitée de .NET Framework.

Merle
la source
4

RESOLU
Recherche "Windows Feature"au démarrage ->
Cliquez sur "turn features on and off"->
Développez "Internet Information Services"et
vérifiez chaque programme dans chaque sous-dossier et
cliquez sur "OK"
Cela résoudra tous vos problèmes. entrez la description de l'image ici

Ahmed Adewale
la source
3

J'ai résolu mon problème avec la jachère ces étapes =>

  1. Ouvrez le gestionnaire IIS
  2. Cliquez sur l'application
  3. Cliquez sur Parcourir le répertoire
  4. Cliquez sur Ouvrir la fonction (sur la droite, vous verrez sous Actions)
  5. Cliquez sur Activer
Haktan Enes Biçer
la source
2

Cela peut être dû à une entrée bum applicationhost.config.

Arrêtez IIS Express s'il est en cours d'exécution (cliquez avec le bouton droit de la souris sur l'icône de défilement bleu clair dans la barre d'état système de Windows; Quitter).

Accédez à Propriétés> Web de votre projet et vérifiez que l'URL du projet est correcte. Dans le cas d'une URL https, assurez-vous qu'elle inclut un numéro de port dans la plage valide. Pourrait être une URL correcte: https://localhost:44300/. Appuyez maintenant sur le bouton "Créer un répertoire virtuel" à côté de l'URL. Cela ajoute une nouvelle entrée à applicationhost.config.

Relancez le projet et espérons que vous n'obtiendrez plus l'erreur.

Protecteur un
la source
2

Je suis sûr qu'après des années, vous avez probablement déjà une réponse. Mais au cas où quelqu'un d'autre chercherait une réponse dans le futur.

Pour mon problème, je n'avais rien à faire sur le web.config. Je ne pensais pas que j'en aurais besoin non plus car cela fonctionnait auparavant.

Assurez-vous qu'aucun dossier ne porte le même nom que votre page, j'avais un dossier appelé "blog" et une page nommée "blog.aspx", il essayait de charger le dossier, j'ai remarqué cela dans le lien, j'ai changé le dossier en blogContent , maintenant il se charge bien.

Je poste une copie ici car vous êtes le premier dans la requête de recherche.

Justin Sinnard
la source
2

Le problème peut provenir de l'exécution du projet à partir de Visual Studio sur IIS tout en étant sur le mauvais onglet ouvert sur Visual Studio, donc la solution est soit d'ouvrir le bon onglet (le formulaire Web que vous souhaitez tester sur votre navigateur) ou comme d'autres le suggèrent dans le autres réponses, faites un clic droit sur le formulaire Web que vous souhaitez définir comme page d'accueil, puis cliquez sur «Définir comme page de démarrage».

Mehdi Fracso
la source
1

Dans mon cas, il me manquait la Microsoft.Owin.Host.SystemWebpépite.

pootzko
la source
1

faites un clic droit sur votre projet dans l'explorateur de solutions, puis cliquez sur ajouter un nouvel élément, ajoutez une page HTML et nommez-la comme index.HTML après tout, relancez votre application

user1324491
la source
1

Dans mon cas

Dans le pool d'applications, j'ai défini la version .NetFrameWork sur V4.0 et j'ai résolu le problème ....

ashkufaraz
la source
1

Vous devez installer la partie Développement d'applications d'IIS sur votre serveur comme vous pouvez le voir sur cette image:entrez la description de l'image ici

Amir Parsi
la source
0

Cela peut arriver pour un certain nombre de raisons. Si vous avez essayé tout ce qui précède et que vous obtenez toujours la même erreur, j'ai une autre solution.

Une autre raison pour laquelle cela pourrait arriver est que

  1. Si vous avez la même base de code en cours d'exécution avant de commencer à exécuter la nouvelle solution, vous pouvez rencontrer cette erreur. La raison en est qu'IIS Express tente de s'exécuter sur le même port que pour l'ancienne solution dont le chemin physique est enregistré pour l'URL de démarrage de l'application.
  2. Étant donné que l'IIS ne peut pas déterminer le chemin d'accès physique pour exécuter la solution, il peut ne pas être en mesure de localiser toutes les dll requises pour démarrer l'application.

Solutions:

  1. Essayez de changer le port d'application par défaut. Par exemple., Utiliser http://localhost/au lieu dehttp://localhost:25836/

  2. Essayez de passer à n'importe quel autre port si vous avez déjà utilisé le port par défaut pour l'application précédente. ex: http://localhost:25364/au lieu dehttp://localhost/

Cela permettra à IIS / IIS Express de pointer vers le chemin par défaut de la corbeille de la nouvelle application que vous essayez d'exécuter et qui aura toutes les dll requises pour démarrer l'application.

Krishna
la source