J'ai téléchargé l'application ASP.NET de MVC Music Store à l'emplacement C:\Utilisateurs\DEVESH\Bureau\Projets\MvcMusicStore-v3.0\MvcMusicStore-Completed\MvcMusicStore Et ajouté le site Web sur IIS à la même endroit. J'ai également donné la permission à IIS_IUSRS, mais lorsque j'exécute localhost, j'obtiens le message d'erreur suivant:
Erreur HTTP 403.14 - Interdit Le serveur Web est configuré pour ne pas répertorier le contenu de ce répertoire.
Je l'ai googlé, mais je n'ai pas trouvé de solution. Qu'est ce que je fais mal?
J'ai rencontré cette erreur car j'avais la mauvaise version .NET (v2.0 au lieu de v4.0) configurée sur le pool d'applications du site Web. J'ai corrigé le problème de cette façon sous Windows Server 2008 R2 et IIS 7. Je suis presque certain que les instructions s'appliquent également à Windows Server 2012 et à IIS 8:
Cela ne s'applique pas si vous utilisez un site plus ancien qui devrait en fait disposer de .NET v2.0, bien sûr :)
Dans mon cas, ASP.NET n'est pas enregistré sur le serveur. essayez d'exécuter ceci dans l'invite de commande:
Windows 32bit
%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -ir
Windows 64bit
%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -ir
Juste au cas où quelqu'un cherchait une solution, voici comment je l'ai résolue. Par erreur, j'ai supprimé tous les fichiers de mon serveur (répertoire bin) mais quand j'ai recopié tous les fichiers, j'ai raté les fichiers App_global.asax.dll et App_global.asax.compiled. Parce que ces fichiers étaient manquants IIS me donnait cette erreur
403 - Forbidden: Access is denied.
Dès que j'ai ajouté ces fichiers, cela a parfaitement fonctionné.
Je me suis déjà rencontré de la même façon auparavant pour 2 raisons: 1. MVC n'est pas installé. 2. Le module de routage url n'est pas enregistré (cela varie d'une machine à l'autre sur mon lieu de travail pour une raison que je ne peux pas expliquer complètement - il n'est pas toujours enregistré au niveau système), essayez de l'enregistrer dans l'application web.config:
<system.web>
...
<httpModules>
...
<add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</httpModules>
</system.web>
Edit: J'ai oublié d'ajouter l'emplacement pour IIS 7+:
<system.webServer>
<modules>
...
<add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</modules>
</system.webServer>
J'utilisais l'application ASP.NET 4.5 MVC sur IIS 7. Mon correctif consistait à définir runallmanagedmodule sur true.
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
</system.webServer>
ou Si vous avez d'autres modules, vous pouvez les ajouter à la balise module.
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<add name="ErrorLogWeb" type="Elmah.ErrorLogModule, Elmah" preCondition="managedHandler" />
...
</modules>
</system.webServer>
Présentation des modules IIS: site officiel de Microsoft IIS
Cette erreur peut se produire lorsque, dans IIS Manager, le site ASP.NET MVC est dirigé vers le mauvais répertoire.
Dans mon cas, par inadvertance, le site a été dirigé vers le répertoire de la solution au lieu du répertoire du projet enfant. C'est-à-dire que j'avais le Physical path
du site réglé sur
C:\dev\MySolution
au lieu de
C:\dev\MySolution\MyProject
.
Étapes spécifiques pour résoudre ce problème:
Physical path
dans le répertoire du projet. Je viens d'avoir le même problème, mais mon problème était que le routage n'était pas configuré dans le fichier Global.asax.cs. J'utilise Bootstrapper et Castle Windsor, donc pour résoudre ce problème, j'ai ajouté le code suivant à Global.asax.cs:
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
Bootstrapper.IncludingOnly.Assembly(Assembly.GetAssembly(typeof(WindsorRegistration)))
.With
.Windsor()
.With
.StartupTasks()
.Start();
}
}
Évidemment, si vous utilisez le MVC de base, vous devrez alors référencer le fichier RouteConfig dans le dossier AppStart:
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
}
Dans mon cas, j’avais plusieurs projets mais je n’avais pas défini le projet de départ . Après avoir défini le projet startUp, le problème a été résolu.
Cette erreur se produit lorsque l'application ne peut pas démarrer.
La cause peut donc être tout ce qui empêche votre application de démarrer.
J'ai eu cette erreur après avoir créé une application ASP.Net vide dans Visual Studio. Dès que j'ai ajouté un fichier index.html à la solution principale, cela a fonctionné. Donc, dans mon cas, je devais simplement ajouter un fichier à la racine du dossier du projet.
Si le projet est un projet ASP.net MVC, il s'agira d'un routage . Dans mon cas, j'ai modifié les valeurs de routage par défaut:
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = "" }
);
J'ai changé mon code accidentellement en:
routes.MapRoute(
"Default",
"{controller}/{action}/{JobID}",
new { controller = "Home", action = "Index", id = "" }
);
Thats I seulement changé "id" à "JobId" et la route par défaut ne peut pas être trouvé.
dans mon cas: 1. Dans le gestionnaire IIS, dans l'arborescence de gauche, cliquez avec le bouton gauche sur le nom de l'ordinateur, dans la boîte de dialogue de droite, cliquez sur Limitation ISAPI et CGT, dans la boîte de dialogue ouverte, sélectionnez ASP.NET v4.0.30319, puis activez. Il y a deux ASP.Net v4.0, un pour 32 bits, un autre pour 64 bits. sélectionnez en fonction de votre bit OS . 2. dans l'arborescence de gauche, sélectionnez le pool d'applications, dans la boîte de dialogue de droite, sélectionnez le pool d'applications utilisé par votre site Web. Double-cliquez sur ce groupe. Dans la boîte de dialogue ouverte, sélectionnez .net Framke, sélectionnez .net Framework v.4.0.30319. et pipe..item select integate . Peut-être y at-il une traduction incorrecte ci-dessus car mon système d’exploitation n’est pas la version anglaise.
Mes collègues ont créé un règle de réécriture d'URL , qui réduit toutes les URL à un StaticFileHandler; mappé sur un chemin de fichier à la racine du dossier physique de mon application.
(c'est-à-dire qu'une réécriture d'URL trop agressive signifie que mes contrôleurs/actions ne fonctionnaient pas)
Vérifiez les règles de réécriture de l'URL de vos applications pour vous assurer qu'elles répondent à vos attentes.
Si quelqu'un trouve cela pour un projet autre que MVC:
Mon projet était un projet WCF, qui exécute des fichiers .svc
- pas de document par défaut. En conséquence, j'ai eu une erreur 403.14 à myhost.com/
, mais dès que j'ai ajouté un chemin baseAddress
à partir de mon fichier web.config (par exemple, myhost.com/mybaseaddresspath.svc
, j'ai eu une page Web.
Vérifiez ceci aussi:
Ce problème se produit car la fonctionnalité de recherche dans l'annuaire n'est pas activé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:
IUSR permissions
utiliser sur un dossier si pas sous inetpub/wwwroot sera une solution pour certains.
Dans mon cas, le fichier index.aspx n’a pas été créé par défaut et après l’ajout d’un autre formulaire Web, je n’ai pas défini le formulaire comme page de démarrage ... Après avoir défini la page comme page de démarrage, mon problème a été résolu. form et définissez le formulaire comme page de démarrage :)
Dans mon cas, j'ai dû désactiver "Exclure les fichiers du dossier App_Data" dans mon profil de publication pour déployer le dossier App_Data avec ma documentation XML (XmlDocument.xml). Cela s'est débarrassé du 403.14.