Forçant les pages d'erreur 404 personnalisées pour les pages dans le Routage d'URL
Plateforme de codage ASP.NET 4.0 WebForms sur IIS7.5
Si je demande une page blahblah.aspx
qui n'existe pas, je reçois navigué vers ma page d'erreur personnalisée pour que la Page est introuvable Exception. J'ai mis en œuvre le routage d'URL et donc, j'ai omis tous mes .aspx les extensions des routes.
Maintenant, Si je tape www.mysite.com/blahblah
(c'est une url sans extension) au lieu d'aller à ma page d'erreur personnalisée, il obtient redirigé vers mon IIS page d'erreur 404.
Que dois-je faire pour que ma page d'erreur personnalisée apparaissent sur mon site au lieu de IIS page d'erreur?
Êtes-vous à l'aide intégrée de la mode pipeline dans IIS?
oui. je suis. est-ce un problème?
Non, c'est bien, c'est juste utile de comprendre d'où peut être le problème. En mode classique, IIS peut retourner les codes d'erreur sans jamais la rendre aussi loin que votre application, basée uniquement sur les fichiers qu'il peut voir sur le disque. Bien sûr, dans le MVC c'est pas de servir des fichiers alors que ce serait un problème. Le mode intégré signifie que la demande sera arriver à votre application.
oui. je suis. est-ce un problème?
Non, c'est bien, c'est juste utile de comprendre d'où peut être le problème. En mode classique, IIS peut retourner les codes d'erreur sans jamais la rendre aussi loin que votre application, basée uniquement sur les fichiers qu'il peut voir sur le disque. Bien sûr, dans le MVC c'est pas de servir des fichiers alors que ce serait un problème. Le mode intégré signifie que la demande sera arriver à votre application.
OriginalL'auteur naveen | 2011-06-09
Vous devez vous connecter pour publier un commentaire.
La Voie De La Facilité
Si votre serveur web IIS 7 n'est pas déjà fait, installez le IIS 7.0 Pack d'Administration de Microsoft.
Accédez à la racine du nom du serveur web dans IIS, et ouvrir la
Configuration Editor
(partie du Pack d'Administration). Modifier la liste déroulantesystem.webServer/httpErrors
, cliquez-droit surdefaultPath
, et choisir'defaultPath' Attribute -> Unlock Attribute
.Essayez ensuite de modifier le gestionnaire d'erreur personnalisé de nouveau la page. Accédez à votre site, d'ouvrir
Error Pages
sous le groupe IIS, cliquez surEdit Feature Settings
sur la droite, sélectionnezCustom error pages
et enfin, mettre dans votre chemin d'accès de la page par défaut.Aucune erreur de verrouillage de ce temps.
J'ai d'abord essayé de déverrouiller cet attribut au niveau du site web, mais a été empêché, donc être conscient que vous pourriez avoir à aller tout le chemin à la racine de l'IIS de l'arbre, le serveur web lui-même.
La Manière Manuelle
Je sais que vous pouvez accomplir tout cela en direct de l'édition dans le bloc-notes du fichier de configuration sur le serveur web. Et c'est peut-être nécessaire pour votre environnement d'hébergement web ou de la société de production serveur web de modifier les protocoles. Mais pourquoi faire compliqué si on n'a pas besoin de l'être? De Plus, de cette façon, vous pouvez le faire dans l'interface graphique, et de comparer l'avant et l'après pour voir ce que les changements que vous avez vraiment à faire. Mais si vous DEVEZ le faire manuellement, puis:
Ouvrir le fichier
%windir%\System32\inetsrv\config\applicationHost.config
dans le bloc-notes. Exécuter le bloc-notes en tant qu'administrateur si vous rencontrez des problèmes.Pro tip: Ne pas utiliser notepad++ pour éditer applicationHost.config. Vous finirez secrètement et silencieusement de l'enregistrement d'un 32-bit copie du fichier dans un autre dossier que celui IIS recherche (en raison de Windows, pas de np++) sans affecter le fichier que vous souhaitez modifier.
Vous verrez quelque chose comme ceci:
Supprimer la
,defaultPath
section et de les enregistrer.Vous serez en mesure de faire les changements dont vous avez besoin.
Je ne sais pas ce que tu veux dire par une nouvelle version.
Signifie que je peux publier l'application web au serveur
Êtes-vous d'écraser applicationhost.config? Ne pas le faire.
Le
httpErrors
section est un groupe mondial de IIS, donc seulement de publier n'affecte pas la config.OriginalL'auteur ErikE
En supposant que vous ne l'avez pas déjà fait cela...
Aller dans IIS, sélectionnez votre site, et choisissez l'option "Pages d'Erreur". De là, trouver le code d'état 404, faire un clic droit et allez dans "Modifier les Paramètres de Fonction". vous pouvez ensuite sélectionner "des pages d'Erreur Personnalisées" et modifier le "Chemin d'accès de Type" URL "Exécuter" URL de faire certaines réécriture, ou, par défaut, une page de redirection pour autre chose. Mettre dans votre URL, comme une valeur relative, et maintenant il doit rediriger vers cette url sur des erreurs 404.
Edit: Fait un peu de creuser, dans les cas, cette configuration peut être verrouillé, si vous exécutez la commande suivante, il faut supprimer le verrou:
Une fois que c'est fait, vous pouvez modifier l'url correctement.
Gestion des ressources humaines, il se peut que des parties de la config IIS sont verrouillés. Découvrez http://learn.iis.net/page.aspx/145/how-to-use-locking-in-iis-70-configuration/
Mise à jour de répondre avec une solution à ce problème.
essayé déjà. aucune utilisation. 🙁 merci pour la réponse
non valide le lien dans votre commentaire ci-dessus
OriginalL'auteur Oriacle