L'obtention d'erreur 404 sur MVC web-site
J'ai un IIS7.5 web-site, sur Windows Server 2008, avec un ASP.NET MVC2 site web a été déployée. Le site a été créé dans Visual Studio 2008, le ciblage .NET 3.5, et IIS 5.1 a été correctement configuré pour s'exécuter en tant que bien, pour examen local.
Cependant, chaque fois que j'essaie et accédez à une page de l'exécution dans IIS7, j'ai une erreur 404.
J'ai vérifié les choses suivantes:
- Il n'y a pas de 404 entrée de journal dans les journaux IIS.
- En fait, il n'y sont 404 entrées dans le journal IIS.
- Le pool d'applications pour le web-site est configuré pour utiliser le pipeline Intégré.
- La "customErrors" le mode est réglé sur off.
- .NET 3.5 SP1 est installé
- ASP.NET MVC 2 est installé
- J'ai utilisé MVC Diagnostic pour confirmer tous MVC Dll sont en train d'être trouvées.
- ASP.NET est activé dans IIS, nous avons démontré par l'exécution de la MVC page Diagnostics.
- KO 2023146 ne mettre en évidence que la Redirection HTTP a été éteint, nous avons donc allumé, mais pas de joie.
MODIFIER
Ok, nous avons donc installé le du monde la plus simple application MVC (le seul qui est créé lorsque vous créez un nouveau MVC2 projet dans Visual Studio), et nous sommes encore en train d'une erreur 404 sur toutes les pages, nous essayons et de l'accès - par exemple
<my_server>/Home/About
va générer une erreur 404.
Toutes les idées seront grandement appréciés!
OriginalL'auteur RB. | 2011-02-21
Vous devez vous connecter pour publier un commentaire.
C'est très souvent causée par ce qui suit manquant à partir du web.config:
OriginalL'auteur Sam Shiles
Vous avez un problème avec juste 1 page ou l'ensemble du site ne fonctionne pas?
A) 1 page
B) Ensemble du site
Je suppose que vous êtes à l'aide de Windows Server - vérifier si ASP.NET est activé dans IIS - il est désactivé par défaut, je crois.
Vous pouvez utiliser MvcDiagnostics page pour vérifier si toutes les dll sont déployés correctement.
Êtes-vous en cours d'exécution dans IIS7 mode intégré? Mode classique de IIS7, ne fait pas automatiquement de la carte extensionless Url d'ASP.NET (un peu comme IIS6)
Assurez-vous que votre Web.config balise est correctement configuré.
Avez-vous vérifié bullet-points 1, 3, 4 de la section B)?
OriginalL'auteur Jakub Konecki
Nous avons finalement cloué à cette question par l'exportation de la configuration IIS d'un serveur de travail, et de la comparer à la nôtre.
C'était vraiment un obscur paramètre qui a été modifié à partir de la valeur par défaut.
IIS RACINE → demande de Filtrage → Extensions de nom de fichier de l'Onglet → Modifier les Paramètres de Fonction → Permettre non cotées extensions de nom de fichier
Ce doit être cochée.
Ce qui peut être défini au niveau de IIS, ou au niveau du site.
J'ai ajouté une capture d'écran montrant où l'option est. Je suppose que vous utilisez IIS 7.5 ou plus tard?
En fait était IIS 7.0, merci pour votre aide. Finalement compris que la question était un bug Microsoft pour lequel il n'y a pas de mise à jour automatique. ugh.
Je pense que vous pouvez aussi le régler dans le Web.config: <système.serveur> <> <requestFiltering> <fileExtensions> <allowUnlisted="true" /> </fileExtensions> </requestFiltering> </titre> </système.serveur>
OriginalL'auteur RB.
Heureux qui a résolu votre problème. D'autres recherches sur cette question devrait prendre note de la extensionless URL correctif: http://support.microsoft.com/kb/980368
OriginalL'auteur John Mathis
Caisse si KO 2023146 s'applique à votre scénario. Aussi essayer de demander directement une action de contrôleur:
/yoursitename/home/index
Demandant une action de contrôleur directement (monsite/Home/) donne une erreur 404.
OriginalL'auteur Darin Dimitrov
Si aucune des autres solutions ici résolu votre problème, vérifiez que vous disposez de la
fichier dans votre site web. Cela a résolu le problème pour moi.
OriginalL'auteur Lanklaas
Apparemment cela peut avoir de nombreuses causes différentes.
Pour nous, le problème était que l'entrée DNS est configuré pour les deux adresses IP, mais la configuration IIS serait de n'écouter que pour l'un d'entre eux. Donc, nous avons obtenu des résultats imprévisibles, parfois, il serait de travailler, parfois quelques fichiers (css, etc) ne serait pas de charge, et parfois l'ensemble de la page ne se charge pas.
OriginalL'auteur Kiki
Pour moi, il était tout au sujet de l'installation .NET Framework 4.6.1 sur le serveur (mon appli a été le ciblage de cette version)
OriginalL'auteur Michal B.
Vous obtiendrez également de cette si vos fixations ne sont pas correct. Si vous n'avez pas de www ou un sous-domaine, il va retourner une erreur 404.
OriginalL'auteur Andrew dh
J'ai eu ce problème lors de l'exécution de mon MVC4 site avec un pool d'application défini à ASP.NET 4.0 et le Classique pipeline, même si l'extension des gestionnaires ont été mis dans mon web.config et montraient correctement dans IIS. Le site a travaillé dans le Pipeline Intégré donc je savais que c'était un problème de configuration, mais je n'arrivais pas à le clouer. J'ai finalement trouvé que ASP.NET 4 a été désactivé pour le serveur dans le ISAPI et CGI paramètres de Restrictions. J'ai activé ASP.NET 4.0 et cela a fonctionné.
OriginalL'auteur Chris
En plus de vérifier si vous êtes en cours d'exécution en pipeline intégré mode, assurez-vous que votre pool d'application est configuré pour utiliser .NET! J'ai récemment rencontré ce problème, et quand je suis allé pour vérifier l'application des paramètres du pool, j'ai trouvé que quelque part, il avait été réglé sur "Aucun Code Managé." Oups!
OriginalL'auteur Mason G. Zhwiti
Mon entreprise d'Hébergement fixe, c'est pour moi en faisant cela (j'ai enlevé le mot de passe d'origine de la valeur, bien sûr).
OriginalL'auteur Rez.Net
En général, je rencontre ce problème quand il y a un problème de Routage. Je compare un travail vs non-travail pour le résoudre.
Aujourd'hui, cependant j'ai accidentellement créé un Répertoire Virtuel dans IIS.
Il doit être une Application, cliquez-droit sur le Répertoire Virtuel (avec une icône de dossier) -> Convertir en Application:
OriginalL'auteur Jeremy Thompson