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ée
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" dans
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 la MVC du projet "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.
- Bon, j'ai un problème similaire et il affiche uniquement avec ASP.NET MVC 3 sites web. ASP.NET MVC 2 sites internet les beaux travaux. J'ai placé un Défaut.aspx fichier dans la racine du site web et il s'est repris ok, pas de problème. J'ai déployé bin la ASP.NET MVC 3 site web à l'aide de VS2010 SP1 et toujours pas de joie. Je suis à bout de ressources avec cette.
- Avez-vous assurez-vous que le pool d'applications pour le MVC 3 app est réglé .NET 4.0?
- Ouais. Il est fixé à 4,0/Intégrée. J'ai aussi couru aspnet_regiis -ir.
- Je vais avoir le même problème. J'ai mis l'application à utiliser 4.0 intégrée, exécuté la commande d'enregistrement pour enregistrer .NET avec IIS (7.5) et toujours cette erreur.
- J'ai enfin réussi à trouver le problème dans mon jeu, ce qui fait que j'avais renommé le fichier
_Layout.cshtml
à_PageLayout.cshtml
et avait fait le changement correspondant dans la_ViewStart.cshtml
, mais apparemment ce n'était pas assez. Une fois je suis revenue sur le nom de_Layout.cshtml
, il a commencé à travailler. Ce qui était déroutant est que_PageLayout.cshtml
a été repris correctement sur Win7 32 bits, mais n'a pas été ramassé sur Win7 64 bits ou WinSvr2K8 R2. - Assurez-vous que vous exécutez aspnet_regiis-i/aspnet_regiis -r comme indiqué ci-dessous. Pour faire bonne mesure, effacez le site web et l'application de la piscine si vous le pouvez et arrêter IIS avant d'exécuter les commandes. Vous devez également vous assurer que vous installez ASP.NET MVC 3 sur le serveur, ou Bin Déployer. Pour le faire facilement, vous allez avoir besoin d'VS2010 SP1. Voir ma première réponse à cette question stackoverflow.com/questions/5601325/asp-net-mvc3-in-iis-7-5 pour savoir comment faire.
- Quelqu'un a trouvé une solution à ce sur Windows 8 avec IIS 8?
- Si vous êtes sur Windows Server 2012 ou windows 8 voir ceci: [stackoverflow.com/questions/12134713/... [1]: stackoverflow.com/questions/12134713/...
- Désactiver ASP.NET l'usurpation d'identité et il ne peut résoudre le problème aussi
- J'ai trouvé, j'ai dû refaire mon application dans IIS pour qu'il fonctionne trop.
Vous devez vous connecter pour publier un commentaire.
ASP.NET 4 n'a pas été enregistrée dans IIS. Avait à exécuter la commande suivante dans la ligne de commande/run
32 bits (x86) Windows
64 bits (x64) de Windows
Remarque de David Murdoch commentaire:
%windir%\Microsoft.NET\Framework64
répertoire et modifier la commande en conséquence avant l'exécution (il est actuellement de v4.0.30319).Une chose de plus pour vous assurer d'avoir le jeu suivant de votre site web.config:
runAllManagedModulesForAllRequests
(qui fonctionne même pour les fichiers statiques), vous pouvez installer un correctif Microsoft: microsoft.com/download/en/....Assurez-vous d'avoir le jeu suivant de votre site web.config:
Meilleure solution:
Même si la solution ci-dessus fonctionne très 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
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")
<system.web><httpModules><add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" />
, dans leWindows\Microsoft.NET\Framework64\v4.0.30319\Config\web.config
et semblaient avoir été modifiés à la date de mon VS 2012 installation. Donc, la prochaine question est, qu'est-ce que dans mon autre projet qui est en lui permettant de fonctionner?%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -ir
recommandé par le haut solution qui définit quelles que soient les valeurs par défaut doit exister sur mon appareil de développement. Cette commande ne permet pas de résoudre le problème pour moi une fois que j'ai supprimer le UrlRoutingModule de référence.Une autre raison pour laquelle quelqu'un pourrait obtenir cette erreur si le fichier Mondiale.asax n'est pas dans le dossier racine plus.
global.asax
est uniquement de fichiers touchés).J'ai été aussi à recevoir cette erreur et a découvert que "la Redirection HTTP" n'a pas été activée dans Windows Server. Ce blog de points ainsi: http://blogs.msdn.com/b/rjacobs/archive/2010/06/30/system-web-routing-routetable-not-working-with-iis.aspx
Doux Jésus. J'ai essayé toutes les solutions mentionnées ci-dessus (mais trouvé mon paramètres identiques). ENCORE une AUTRE SOLUTION si vous avez des questions:
http://support.microsoft.com/kb/980368
Essayez d'installer cette base de connaissances pour votre système. Si vous voyez une erreur 404, il pourrait être parce que vous n'avez pas cette mise à jour -- et le module isapi n'est tout simplement pas trouvé et il n'y a pas beaucoup que vous pouvez faire à ce sujet que, sans cette!
Aussi u peut basculer AppPool à Intégré mode. Thnx pour Michael Bianchi (https://stackoverflow.com/a/7956546/1143515), je veux seulement souligner qu'.
Pour moi sur l'Azur Server 2012 R2, IIS 8.5 VM avec un Asp.Net MVC 5 app (bin déployé MVC 5) j'ai eu à faire à la suite d'une élévation de l'invite de cmd, même si j'avais 4.5 déjà installé:
Source: http://support.microsoft.com/kb/2736284
J'ai aussi la force brute installé toutes les fonctionnalités IIS avec le PowerShell suivante:
Source: http://www.iis.net/learn/install/installing-iis-85/installing-iis-85-on-windows-server-2012-r2
Maintenant mon application fonctionne.
Nous avons eu une application MVC déplacé vers un nouveau serveur. .NET MVC 4 et 3 a été installé, mais il faut quand même "Erreur 403.14". Dans ce cas, cela signifiait qu'IIS n'ont pas compris qu'il a affaire à une application MVC, il était à la recherche de la page par défaut.
La solution était simple: la Redirection HTTP n'a pas été installé sur le serveur.
Le Gestionnaire de serveur – le rôle Serveur Web (IIS) – Services de Rôles – Redirection HTTP: il n'est Pas installé. Installé, le problème est résolu.
Aussi, si votre application est compilée, vous devriez avoir
PrecompiledApp.config
dans le dossier racine de votre application, autrement, vous pourriez obtenir
HTTP Error 403.14
ainsi.Une autre solution possible, si vous vous déplacez dans votre global.asax, assurez-vous que le marquage des points pour le bon MvcApplication classe. J'espère que cela va sauver quelqu'un dans le futur.
J'avais utilisé le WebDeploy IIS Extension pour importer mes sites web à partir de IIS6 à IIS7.5, de sorte que tous les paramètres IIS étaient exactement comme ils l'avaient été dans l'environnement de production. Après avoir essayé toutes les solutions proposées ici, aucun n'a fonctionné pour moi, j'ai simplement eu à modifier l'Application de la Piscine de réglage pour le site web de la Classique Intégré.
J'ai rencontré le même 404.14 problème tout d'un coup. Enfin, le problème avait été résolu en désactivant l'option "précompiler lors de la publication d'" dans le profil de publication paramètres.
J'ai changé mon itinéraire par défaut à un point à partir de:
À:
Qui m'a donné votre erreur. Content que quelqu'un a mentionné le routage parce que je serais probablement déjà été sur ce pour toujours.
Dans mon cas ASP.NET 4.5 n'est pas installé sur le serveur pour l'installation ASP.NET 4.5 résolu le problème.
Vous pouvez résoudre cette erreur en cours d'exécution cmd en tant qu'administrateur
que
Faire la même chose que dans l'image pour windows 32 bits
Juste apporter des modifications en 64 bits comme framework64 au lieu de cadre
Que d'aller à l'iis et actualiser le site
Si u encore eu une erreur de faire des changements dans l'application de la piscine
J'ai eu un autre problème qui a conduit à cette question.
Aucune de ces choses travaillé. Il s'est avéré que dans mon web.la config dans le système.serveur > les modules, j'ai eu la suivante:
Évidemment, ce n'supprimé le module d'authentification windows qui semblait en quelque sorte tout dégommer légèrement déjantée.
J'espère que cela aide quelqu'un, que cela m'a coûté plus d'une soirée!
L'INTERFACE utilisateur est un peu différent dans les versions plus récentes de Windows Server. C'est ici que vous devez l'activer ASP.Net afin de le faire fonctionner sur IIS
Ajoutant une autre solution pour ce problème.
dans mon Global.asax.cs fichier que j'avais désactivé la tentative de fichiers php d'être consommée par le MVC pipeline à l'aide d'suivantes:
routes.IgnoreRoute( "{*php}" );
Je l'avais fait précédemment dans un MVC2 projet et il a bien fonctionné, mais le faire dans mon MVC 3 app causé le problème signalé ci-dessus.
Encore une autre raison de ce qui peut arriver - votre
RouteConfig.cs
ouWebApiConfig.cs
ne sont pas valides.Dans mon cas, j'ai eu un parcours défini en tant que tel (notez les parenthèses à la place de l'accolade):
routes.MapRoute( name:"Default", url:"{controller}/{action}/{repositoryId}", defaults:new { controller = "Account", action = "Login", id = UrlParameter.Optional } );
. Quand je fixeid = UrlParameter.Optional
surrepositoryId = UrlParameter.Optional
il commence à travailler!Veuillez noter que pour les utilisateurs de Windows 8, vous devez ajouter/supprimer des composants windows et de supprimer la version de .net redémarrage puis de le ré-installer pour enregistrer avec IIS. Je présume que ce qui se passe si vous l'obtenez .net 4.5 à partir de visual studio et de l'installation d'IIS par la suite.
Aussi étrange que cela puisse paraître, réinstaller IIS a été ce qui a fonctionné pour moi, avec la commande suivante à exécuter à partir de l'intérieur de l' .net version dossier:
Quand j'ai exécuté cette commande, j'ai commencé à obtenir de l'Erreur HTTP 403.14. Mais une fois que j'ai lancé la commande de nouveau il a résolu le problème.
Obs: une Autre chose que j'ai fait aussi était de supprimer l'adresse HTTP de Redirection à partir du serveur dispose d'un Serveur de Gestion de l'écran avant de reiinstalling IIS. Peut-être que cela a également eu un impact dans la résolution du problème, mais je ne suis pas sûr. Donc, si réinstaller IIS ne fonctionne toujours pas, veuillez essayer de retirer de Redirection HTTP, et essayez de nouveau. J'espère qu'il peut fonctionner pour vous aussi.
aspnet_regiis.exe
ne pas installer ou réinstaller IIS, il vient d'enregistrer un particulier .NET framework version, de sorte qu'il peut être utilisé par IIS pour l'hébergement des applications.Pour résoudre ce problème sans avoir à recourir à 32 bits mode, vous aurez à mettre à jour le code source de ce projet
J'ai soulevé cette question dans une discussion sur le forum de discussion à l'informatique dans le cloud codeplex projet.
http://itcloud.codeplex.com/discussions/262000
Cela a fonctionné pour moi et il pourrait être utile à un autre.
Peut-être que tous les composants nécessaires ne sont pas présents ou/et tous ne sont pas enregistrés correctement. Afin de résoudre ce problème, essayez de décocher toutes les options à l'intérieur de Panneau de configuration -> fonctionnalités Windows Activer ou désactiver -> Internet Information Services -> Services World Wide Web -> Fonctionnalités de Développement d'Applications, décochez toutes les options et vérifiez tous puis réinitialisez l'IIS et vérifiez si le problème est résolu.
Si vous utilisez IIS 8.5 sur Windows 8 et Server 2012, vous pourriez trouver que l'exécution de la mvc 4/5 (.net 4.5) ne fonctionne pas dans un répertoire virtuel. Si vous créez un hôte local entrée dans le fichier hôte pour pointer sur votre ordinateur local, puis point d'un nouveau site web IIS, dans ce dossier (avec la mise en correspondance d'accueil entrée d'en-tête), vous verrez qu'il fonctionne alors.
J'ai créé un nouvel espace de noms (et donc de dossier) identique à l'itinéraire d'un contrôleur (par exemple
MvcApp/Test/SomeClasses.cs
etMvcApp/Controllers/TestController.cs
). Cela a entraîné également dans un 403.14!Pour moi, la solution était d'ajouter le package NuGet Microsoft.AspNet.Les pages web (en plus, c'est Rasoir et les dépendances à l'Infrastructure) pour mon projet web.
De l'Infrastructure devait être réinstallé de force qu'il n'a pas été ajouté au premier.
Dans mon cas .NET liste de révocation de certificats Version du pool d'Applications prppertires a été fixé à Aucun code managé (je ne sais pas pourquoi).
Le paramètre .NET liste de révocation de certificats de la Version v4.0.30319 résolu le problème.