J'utilise Windows 7 Ultimate (64 bits) à l'aide de Visual Studio 2010 RC. J'ai récemment décidé d'avoir VS exécuter / déboguer mes applications sur IIS plutôt que le serveur de développement qui l'accompagne.
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 répertorier le contenu de ce répertoire. Détaillé
Informations sur l'erreur
Module DirectoryListingModule
Notification ExecuteRequestHandler
Erreur StaticFile du gestionnaire
Code 0x00000000 demandé
URL http: // localhost: 80 / mySite /
Chemin physique C: \ myProject \ mySite \
Méthode de connexion Ouverture de session anonyme
Utilisateur anonyme
J'ai placé un default.aspx
fichier dans le répertoire et j'ai reçu l'erreur suivante:
Erreur HTTP 500.21 - Le gestionnaire d'erreurs du serveur interne "PageHandlerFactory-Integrated" a un mauvais module "ManagedPipelineHandler" dans sa liste de modules
Y a-t-il d'autres étapes que j'ai oublié de prendre pour que cela fonctionne?
Remarques: J'ai installé IIS 7.5 après avoir installé VS 2010 RC. J'ai utilisé le bouton intégré "Créer un répertoire virtuel" sous l'onglet "Web" dans les "Propriétés" du projet MVC dans Visual Studio 2010. Je me suis assuré que l'application utilise le pool d'applications ASP.NET 4.
Voici les fonctionnalités installées d'IIS que j'ai.
_Layout.cshtml
à_PageLayout.cshtml
et avait fait le changement correspondant_ViewStart.cshtml
aussi bien, mais apparemment cela ne suffisait pas. Une fois que j'ai rétabli le nom_Layout.cshtml
, il a commencé à fonctionner. Ce qui a été déroutant, c'est qu'il_PageLayout.cshtml
a été correctement récupéré sur Win7 32 bits mais n'a pas été récupéré sur Win7 64 bits ou WinSvr2K8 R2.Réponses:
ASP.NET 4 n'était pas enregistré dans IIS. J'ai dû exécuter la commande suivante dans la ligne de commande / exécuter
Windows 32 bits (x86)
Windows 64 bits (x64)
Note du commentaire de David Murdoch:
la source
%windir%\Microsoft.NET\Framework64
répertoire et modifiez la commande en conséquence avant de l'exécuter (il s'agit actuellement de la v4.0.30319).Une autre chose à vous assurer est l'ensemble suivant dans votre web.config:
la source
runAllManagedModulesForAllRequests
(qui s'exécute même pour les fichiers statiques), vous pouvez installer un correctif Microsoft: microsoft.com/download/en/… .Assurez-vous que vous disposez de l'ensemble suivant dans votre web.config:
Meilleure solution:
Même si la solution ci-dessus fonctionne parfaitement , elle peut causer d'autres problèmes car elle exécute tous vos modules HTTP enregistrés sur chaque demande (même sur chaque demande de .jpg .gif .css .html .pdf etc.) et c'est évidemment un gaspillage de ressources. Au lieu
Assurez-vous que l'attribut preCondition est vide signifie qu'il s'exécutera sur toutes les demandes. [En savoir plus] ( http://www.britishdeveloper.co.uk/2010/06/dont-use-modules-runallmanagedmodulesfo.html , "Read original post")
la source
<system.web><httpModules><add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" />
,Windows\Microsoft.NET\Framework64\v4.0.30319\Config\web.config
et semblait avoir été modifié à la date de mon installation VS 2012. Donc, la question suivante est, qu'est-ce qui, dans mon autre projet, lui permet de fonctionner?%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -ir
solution recommandée par la meilleure solution qui définit les paramètres par défaut qui doivent exister sur mon périphérique de développement. Cette commande ne résout pas le problème pour moi une fois que j'ai supprimé la référence UrlRoutingModule.Une autre raison pour laquelle quelqu'un pourrait obtenir cette erreur est que le fichier Global.asax ne se trouve plus dans le dossier racine.
la source
global.asax
seul le fichier est affecté).Je recevais également cette erreur et j'ai découvert que la "redirection HTTP" n'était pas activée dans Windows Server. Cet article de blog le souligne également: http://blogs.msdn.com/b/rjacobs/archive/2010/06/30/system-web-routing-routetable-not-working-with-iis.aspx
la source
Doux Jésus. J'ai essayé toutes les choses ci-dessus (mais j'ai trouvé mes paramètres identiques). ENCORE UNE AUTRE SOLUTION si vous rencontrez des problèmes:
http://support.microsoft.com/kb/980368
Essayez d'installer ce KB pour votre système. Si vous voyez des 404, c'est peut-être parce que vous n'avez pas cette mise à jour - et le module isapi n'est tout simplement pas trouvé et vous ne pouvez pas faire grand-chose sans cela!
la source
Vous pouvez également basculer AppPool en mode intégré . Merci à Michael Bianchi ( https://stackoverflow.com/a/7956546/1143515 ), je veux seulement le souligner.
la source
Pour moi sur une machine virtuelle Azure Server 2012 R2 IIS 8.5 avec une application Asp.Net MVC 5 (bin déployé MVC 5), j'ai dû faire ce qui suit à partir d'une invite cmd élevée même si j'avais déjà 4.5 installé:
Source: http://support.microsoft.com/kb/2736284
J'ai également installé par force brute toutes les fonctionnalités IIS avec le PowerShell suivant:
Source: http://www.iis.net/learn/install/installing-iis-85/installing-iis-85-on-windows-server-2012-r2
Maintenant, mon application fonctionne.
la source
Nous avons fait déplacer une application MVC vers un nouveau serveur. .NET 4 et MVC 3 ont été installés, mais nous avons toujours eu «Erreur 403.14». Dans ce cas, cela signifiait que IIS ne comprenait pas qu'il s'agissait d'une application MVC, il cherchait la page par défaut.
La solution était simple: la redirection HTTP n'était pas installée sur le serveur.
Gestionnaire de serveur - Rôles - Serveur Web (IIS) - Services de rôles - Redirection HTTP: non installé. Installé, problème résolu.
la source
De plus, si votre application est précompilée, vous devriez avoir
PrecompiledApp.config
dans le dossier racine de votre application, sinon vous pourriez également l'obtenir
HTTP Error 403.14
.la source
Une autre solution possible, si vous vous déplacez dans votre global.asax, assurez-vous que le balisage pointe vers la classe MvcApplication correcte. Espérons que cela sauvera quelqu'un à l'avenir.
la source
J'avais utilisé l'extension WebDeploy IIS pour importer mes sites Web d'IIS6 vers IIS7.5, donc tous les paramètres IIS étaient exactement comme ils l'avaient été dans l'environnement de production. Après avoir essayé toutes les solutions fournies ici, dont aucune ne fonctionnait pour moi, j'ai simplement dû changer le paramètre App Pool pour le site Web de Classic à Integrated.
la source
J'ai rencontré le même problème 404.14 soudainement. Enfin, le problème avait été résolu en décochant "précompiler lors de la publication" dans les paramètres du profil de publication.
la source
J'ai modifié mon itinéraire par défaut à un moment donné de:
À:
Ce qui m'a donné ton erreur. Heureux que quelqu'un ait mentionné le routage parce que j'aurais probablement été là-dessus pour toujours.
la source
Dans mon cas, ASP.NET 4.5 n'est pas installé sur le serveur, donc l'installation d'ASP.NET 4.5 a résolu le problème.
la source
Vous pouvez résoudre cette erreur en exécutant cmd en tant qu'administrateur
Faites la même chose que dans l'image pour Windows 32 bits
Apportez simplement des modifications en 64 bits en tant que framework64 au lieu du framework uniquement.Allez à iis et actualisez le site
.
la source
J'ai eu un autre problème qui a conduit à ce problème.
Aucune de ces choses n'a fonctionné. Il s'est avéré que dans mon web.config sous system.webserver> modules, j'avais les éléments suivants:
De toute évidence, cela a supprimé le module d'authentification Windows qui semblait en quelque sorte tout renverser.
J'espère que cela aide quelqu'un, car cela m'a coûté la plupart d'une soirée!
la source
L'interface utilisateur est un peu différente dans les nouvelles versions de Windows Server. Voici où vous devez activer ASP.Net pour le faire fonctionner sur IIS
la source
Ajout d'une autre solution à ce problème.
dans mon fichier Global.asax.cs, j'avais désactivé la tentative de consommation de fichiers php par le pipeline MVC en utilisant les éléments suivants:
routes.IgnoreRoute( "{*php}" );
Je l'avais déjà fait dans un projet MVC2 et cela a bien fonctionné, mais cela dans mon application MVC 3 a provoqué le problème signalé ci-dessus.
la source
Encore une autre raison pour laquelle cela peut se produire - votre
RouteConfig.cs
ouWebApiConfig.cs
n'est pas valide.Dans mon cas, j'avais un itinéraire défini comme tel (notez la parenthèse au lieu de l'accolade):
la source
routes.MapRoute( name:"Default", url:"{controller}/{action}/{repositoryId}", defaults:new { controller = "Account", action = "Login", id = UrlParameter.Optional } );
. Lorsque je fixeid = UrlParameter.Optional
surrepositoryId = UrlParameter.Optional
elle commencer à travailler!Veuillez noter que pour les utilisateurs de Windows 8, vous devez ajouter / supprimer des composants Windows et supprimer la version du redémarrage .net, puis réinstaller afin de l'enregistrer auprès d'IIS. Je suppose que cela se produit si vous obtenez .net 4.5 à partir de Visual Studio et installez IIS par la suite.
la source
Aussi étrange que cela puisse paraître, la réinstallation d'IIS a été ce qui a fonctionné pour moi, avec la commande suivante exécutée à l'intérieur du dossier de version .net:
Lorsque j'ai exécuté cette commande pour la première fois, j'ai commencé à obtenir l'erreur HTTP 403.14. Mais une fois que j'ai exécuté à nouveau la commande, cela a résolu le problème.
Obs : Une autre chose que j'ai également faite a été de supprimer HTTP Redirect des fonctionnalités du serveur dans l'écran de gestion du serveur avant de réinstaller IIS. Peut-être que cela a également eu un impact sur la résolution du problème, mais je ne suis pas sûr. Par conséquent, si la réinstallation d'IIS ne fonctionne toujours pas, essayez de supprimer HTTP Redirect et réessayez. J'espère que cela fonctionnera aussi pour vous.
la source
aspnet_regiis.exe
n'installe ni ne réinstalle IIS, il enregistre simplement une version particulière du framework .NET, afin qu'il puisse être utilisé par IIS pour l'hébergement d'applications.Pour résoudre ce problème sans avoir à recourir au mode 32 bits, vous devrez mettre à jour le code source de ce projet
J'ai soulevé cette question en tant que discussion sur le forum de discussion du projet de codeplex cloud informatique.
http://itcloud.codeplex.com/discussions/262000
la source
Cela a fonctionné pour moi et cela pourrait être utile à un autre.
Peut-être que tous les composants requis ne sont pas présents ou / et que tous ne sont pas enregistrés correctement. Pour résoudre ce problème, essayez de décocher toutes les options dans le Panneau de configuration -> Activer ou désactiver les fonctionnalités Windows -> Services Internet (IIS) -> Services World Wide Web -> Fonctionnalités de développement d'applications, décochez toutes les options et revérifiez toutes, puis réinitialisez IIS et vérifiez si le problème est résolu.
la source
Si vous exécutez IIS 8.5 sur Windows 8 ou Server 2012, vous constaterez peut-être que l'exécution de mvc 4/5 (.net 4.5) ne fonctionne pas dans un répertoire virtuel. Si vous créez une entrée d'hôte local dans le fichier hôte pour pointer vers votre ordinateur local, puis pointez un nouveau site Web IIS local vers ce dossier (avec l'entrée d'en-tête d'hôte correspondante), vous constaterez que cela fonctionne alors.
la source
J'ai créé un nouvel espace de noms (et donc un dossier) identique à la route vers un contrôleur (par exemple
MvcApp/Test/SomeClasses.cs
etMvcApp/Controllers/TestController.cs
). Cela a également donné lieu à un 403.14!la source
Pour moi, la solution consistait à ajouter le package NuGet Microsoft.AspNet.WebPages (plus ses dépendances Razor et Infrastructure) à mon projet Web.
L'infrastructure a dû être réinstallée de force car elle n'a pas été ajoutée comme référence au départ.
la source
Dans mon cas, la version .NET CRL du prppertires du pool d'applications a été définie sur Aucun code managé (je ne sais pas pourquoi). La définition de .NET CRL version v4.0.30319 a résolu le problème.
la source