Question

Je suis sous Windows 7 Édition Intégrale (64 bits) en utilisant Visual Studio 2010 RC. J'ai récemment décidé d'avoir VS run / debug mes applications sur IIS plutôt que le serveur dev qui vient avec elle.

Cependant, chaque fois que je tente d'exécuter une application MVC, je reçois l'erreur suivante:

  

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

     

Informations d'erreur

     

Module DirectoryListingModule

     

ExecuteRequestHandler de notification

     

Gestionnaire StaticFile erreur

     

Code de 0x00000000 demandé

     

http: // localhost: 80 / monsite /

     

physique   Chemin C: \ myProject \ monsite \

     

Méthode d'ouverture de session Ouverture de session anonyme

     

Utilisateur anonyme

J'ai placé un fichier default.aspx dans le répertoire et j'ai reçu l'erreur suivante:

  

Erreur HTTP 500,21 - serveur interne   Gestionnaire d'erreurs   « PageHandlerFactory intégrée » a   mauvais module « ManagedPipelineHandler » dans   la liste des modules

Y at-il d'autres mesures que j'ai oublié de prendre pour obtenir ce travail?

Notes: J'ai installé IIS 7.5 après avoir installé VS 2010 RC. J'ai utilisé le bouton « Créer un répertoire virtuel » intégré sous l'onglet « Web » dans le « propriétés » du projet MVC dans Visual Studio 2010. Je me suis assuré que l'application utilise le ASP.NET 4 App Pool.

Voici les fonctionnalités installées de IIS j'ai.

text alt

Était-ce utile?

La solution

ASP.NET 4 n'a pas été enregistré dans IIS. Eu pour exécuter la commande suivante dans la ligne de commande / run

32 bits (x86) de Windows

  

% windir% \ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_regiis.exe -ir

64 bits (x64) de Windows

  

% windir% \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet_regiis.exe -ir

Note de commentaire de David Murdoch:

  

Que la version .net a changé   puisque cette réponse a été publiée. Vérifier   quelle version du cadre est en   % windir% \ Microsoft.NET \ Framework64   répertoire et changer la commande   en conséquence avant d'exécuter (il est   actuellement v4.0.30319)

Autres conseils

Une autre chose à vous assurer que vous avez est le suivant défini dans votre web.config:

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

Assurez-vous que vous avez est le suivant défini dans votre web.config:

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

Une meilleure solution:

Même si la solution ci-dessus fonctionne tout à fait bien , il peut causer d'autres problèmes car il fonctionne tous vos modules HTTP enregistrés sur chaque demande (même à chaque demande de .jpg. gif Css .html .pdf, etc.) et il est évidemment gaspillage de ressources. Au lieu de cela

<system.webServer>
<modules>
  <remove name="UrlRoutingModule-4.0"/>
  <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" preCondition="" />
</modules>
</system.webServer>

Assurez-vous que l'attribut de preCondition est vide signifie qu'il fonctionne sur toutes les demandes. [Lire la suite] ( http: //www.britishdeveloper. co.uk/2010/06/dont-use-modules-runallmanagedmodulesfo.html, "Lire l'article original")

Une autre raison pour laquelle quelqu'un pourrait obtenir cette erreur est si le fichier Global.asax est pas dans le dossier racine plus.

Je recevais aussi cette erreur et a découvert que « redirection HTTP » n'a pas été activée dans Windows Server. Ce billet de blog sur ce point 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 choses ci-dessus (mais trouvé mes paramètres identiques). Une autre solution encore si vous rencontrez des problèmes:

http://support.microsoft.com/kb/980368

Essayez d'installer ce KB pour votre système. Si vous voyez 404s il pourrait être parce que vous n'avez pas cette mise à jour - et le module ISAPI est tout simplement pas se trouver et il n'y a pas beaucoup que vous pouvez faire à ce sujet sans que cela

u peut également commuter AppPool Integrated mode . Thnx à Michael Bianchi ( https://stackoverflow.com/a/7956546/1143515 ), je veux seulement souligner que .

Pour moi sur un serveur Azure 2012 R2 IIS 8.5 VM avec une application Asp.Net MVC 5 (bin déployé MVC 5) je devais faire ce qui suit à partir d'une hauteur cmd invite même si j'avais déjà installé 4,5:

dism /online /enable-feature /featurename:IIS-ASPNET45

Source: http://support.microsoft.com/kb/2736284

J'ai aussi installé la force brute toutes IIS fonctionnalités avec PowerShell suivantes:

import-module servermanager
add-windowsfeature web-server -includeallsubfeature

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 4 et MVC 3 a été installé, mais nous avons eu encore « Erreur 403,14». Dans ce cas, cela signifie que IIS ne comprenait pas qu'il avait affaire à une application MVC, il cherchait la page par défaut.

La solution était simple:. HTTP Redirection n'a pas été installé sur le serveur

Manager Server - Rôles - Serveur Web (IIS) - Services rôles - Redirection HTTP: Non installé. Installé, le problème est résolu.

Aussi, si votre application est précompilée vous devriez avoir

PrecompiledApp.config

dans le dossier racine de votre application sinon vous pourriez obtenir HTTP Error 403.14 ainsi.

Une autre solution possible, si vous vous déplacez votre global.asax, assurez-vous que les points de marquage à la classe MvcApplication correcte. Espérons que cela sauvera quelqu'un à l'avenir.

Je l'avais utilisé la WebDeploy IIS Extension pour importer mes sites 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, je devais simplement changer le paramètre piscine App pour le site de Classic intégré.

Je l'ai rencontré le problème le même 404,14 soudainement. Enfin, le problème avait été résolu en décochant « précompilation lors de la publication » dans les paramètres de publication profil.

J'ai modifié ma route par défaut à un moment donné de:

routes.MapRoute(
"Default",
    "{controller}/{action}/{id}",
    new { controller = "Home", action = "Index", id = UrlParameter.Optional }

Pour:

routes.MapRoute(
"Default",
    "{controller}/{action}/{id}",
    new { controller = "Home", action = "Index" }

Ce qui m'a donné votre erreur. heureux que quelqu'un a mentionné le routage parce que j'aurais probablement été sur ce pour toujours.

Dans mon cas ASP.NET 4.5 n'est pas installé sur le serveur afin d'installer ASP.NET 4.5 résolu le problème.

Vous pouvez résoudre cette erreur en exécutant cmd en tant qu'administrateur que entrer image description ici

Faites la même chose que dans l'image pour Windows 32 bits

Il suffit de faire des changements dans 64 bits comme Framework64 au lieu de cadre seulement Que d'aller à rafraîchir et iis le site
Si u encore eu quelques erreurs faire des changements dans le pool d'applications

J'ai eu un autre problème qui a conduit à cette question.

  • j'avais assuré ma piscine d'application a été en cours d'exécution .NET 4 en mode intégré
  • Je courais aspnet_regiis.exe -i
  • j'avais autorisations de dossier ont été vérifiés correctement défini pour le compte courant de ma piscine app

Aucune de ces choses a travaillé. Il est avéré que dans mon web.config sous system.webServer> modules j'ai eu les éléments suivants:

<remove name="WindowsAuthentication" />

Il est évident que éliminaient les fenêtres module d'authentification qui semblait frapper en quelque sorte tout détraqué.

J'espère que cela aide quelqu'un, car cela m'a coûté plus d'un soir!

L'interface utilisateur est un peu différent dans les versions plus récentes de Windows Server. Voici où vous devez activer ASP.Net afin de le faire fonctionner sur IIS

Ajout d'une autre solution à ce problème.

dans mon fichier Global.asax.cs j'avais désactivé essayé fichiers php d'être consommé par le pipeline MVC en utilisant les éléments suivants:

routes.IgnoreRoute( "{*php}" );

Je l'avais fait ces précédemment dans un projet MVC2 et il a bien fonctionné, mais le faire dans mon application MVC 3 causé le problème signalé ci-dessus.

Encore une autre raison cela peut se produire - votre RouteConfig.cs ou WebApiConfig.cs ne sont pas valides

.

Dans mon cas, j'avais un itinéraire défini en tant que telle (note entre parenthèses au lieu d'accolades):

...
routeTemplate: "api/(something}"
...

S'il vous plaît noter pour Windows 8 utilisateurs dont vous avez besoin pour ajouter / supprimer des composants Windows et supprimer la version de redémarrage .NET puis réinstaller afin de l'enregistrer avec IIS. Je présume que cela se produit si vous obtenez .net 4.5 de Visual Studio et installer IIS après.

Aussi étrange que cela puisse paraître, réinstallant IIS est ce qui a fonctionné pour moi, avec la course de commande suivante à partir du dossier de version .net:

aspnet_regiis.exe /i

entrer image description ici

Quand je lance cette commande, je commencé à obtenir l'erreur HTTP 403.14. Mais une fois que je runned à nouveau la commande, il a résolu le problème.

obs : Une autre chose que je l'ai fait aussi était de supprimer HTTP Redirect des fonctions de serveur dans l'écran de gestion du serveur avant reiinstalling IIS. Peut-être cela a également eu un impact dans la résolution du problème, mais je ne suis pas sûr. Donc, si la réinstallation IIS ne fonctionne toujours pas, s'il vous plaît essayez de supprimer HTTP Redirect et essayez à nouveau. Espérons que cela peut fonctionner pour vous aussi.

Pour résoudre ce problème sans avoir à recourir à mode 32 bits, vous devez mettre à jour le code source pour ce projet

public static void RegisterUrlRoutesFromAttributes(RouteCollection routes)
{
    // Enumerate assembly for UrlRoute attributes.
    List<MapRouteParams> routeParams = new List<MapRouteParams>();
    AppDomain.CurrentDomain.GetAssemblies()
        .ToList()
        .ForEach(assembly => routeParams.AddRange(GetRouteParamsFromAttributes(assembly)));

Je l'ai soulevé cette question comme une discussion sur le forum de discussion au projet CodePlex nuage informatique.

http://itcloud.codeplex.com/discussions/262000

Cela a fonctionné pour moi et il pourrait être utile à l'autre.

Peut-être que tous les composants nécessaires ne sont pas présents et / ou tous ne sont pas correctement enregistrés. Pour résoudre ce problème, essayez de décocher toutes les options à l'intérieur Panneau de configuration -> Windows activer ou désactiver des fonctionnalités -> Internet Information Services -> World Wide Web Services -> Fonctionnalités de développement d'applications, désactivez toutes les options et revérifier tout alors réinitialiser l'IIS et vérifier si le problème est résolu.

Si vous utilisez IIS 8.5 sur Windows 8 ou Server 2012, vous trouverez peut-être que la course 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 machine locale puis pointez un nouveau site Web IIS local à ce dossier (avec l'entrée d'en-tête d'hôte correspondant), vous trouverez cela fonctionne alors.

I créé un nouvel espace de noms (et par conséquent le filtre) identique à la liaison à un dispositif de commande (par exemple MvcApp/Test/SomeClasses.cs et MvcApp/Controllers/TestController.cs). Cela a également abouti à un 403.14!

Pour moi, était d'ajouter la solution de la Microsoft.AspNet.WebPages paquet NuGet (plus il est Razor et les dépendances d'infrastructure) à mon projet web.

Les infrastructures doivent être avec force réinstallée comme il n'a pas été ajouté comme référence dans un premier temps.

Dans mon cas CRL .NET Version dans prppertires de pool d'applications a été définie sur Non code managé (ne sais pas pourquoi). Configuration à la version .NET CRL v4.0.30319 a résolu le problème.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top