Page d'Erreur personnalisée ne pas le montrer, même si j'ai mis CustomError=“On”
Je suis à l'aide de Visual Studio 2012 avec le MVC 4 Cadre et souhaitez voir le message d'erreur de la page du dossier partagé, si une exception n'est pas gérée. (Je sais, comme une develepor j'ai besoin de voir les détails de l'erreur, mais je voulais juste tester ce paramètre)
Jusqu'à présent, je sais que ajoutant le code suivant dans le système.section du site web de web.config devrait faire l'affaire
<customErrors mode="On" />
Malheureusement, au lieu de mon amical page d'erreur que j'obtient ceci:
Erreur de serveur dans l'Application'/'.
Runtime Description de l'Erreur: Une erreur d'application s'est produite sur le
serveur. Le courant d'erreur personnalisée paramètres de cette application prévenir
les détails de l'erreur d'application en cours de visualisation.Détails: Pour activer les détails de ce message d'erreur spécifique à
visible sur le serveur local de la machine, s'il vous plaît créer un
balise à l'intérieur d'un "web.config" fichier de configuration situé dans la racine
répertoire de l'application web actuelle. Cette balise
devrait alors avoir son "mode" attribut "RemoteOnly". Pour activer
les détails pour être visible sur des machines distantes, veuillez régler "mode" pour
"Off".
<!-- Web.Config Configuration File -->
<configuration>
<system.web>
<customErrors mode="RemoteOnly"/>
</system.web> </configuration>
Notes: La page d'erreur que vous voyez peut être remplacé par un
page d'erreur personnalisée en modifiant le "defaultRedirect" attribut de l'
l'application de configuration de la balise de point personnalisé
erreur de l'URL de la page.
<!-- Web.Config Configuration File -->
<configuration>
<system.web>
<customErrors mode="On" defaultRedirect="mycustompage.htm"/>
</system.web> </configuration>
Je voudrais faire comme il est décrit et non pas avec une solution de contournement, comme l'ajout d'une action de contrôleur HomeController, définition des itinéraires ou quelque chose.
Une référence qui devrait fonctionner est la suivante:
http://pluralsight.com/training/players/PSODPlayer?author=scott-allen&name=mvc3-building-controllers&mode=live&clip=0&course=aspdotnet-mvc3-intro
(Sur la gauche, sélectionnez le chapitre "l'Action des Filtres" et passez à la minute 3:30)
Mise à JOUR (lien a été changé):
http://pluralsight.com/training/Player?author=scott-allen&name=mvc4-building-m2-controllers&mode=live&clip=0&course=mvc4-building
(En haut cliquez sur la mince ligne qui stipule que "le Contrôleur de ASP.NET MVC 4", puis cliquez sur "Filtres d'actions" et de passer à la minute 5:00)
Quelqu'un a une idée pourquoi je ne peux pas voir le sympathique page d'erreur avec le paramètre mentionné ci-dessus?
Merci à l'avance!
OriginalL'auteur LFish | 2012-10-10
Vous devez vous connecter pour publier un commentaire.
Voici étape par guide pas à pas à le faire,
Pour commencer, définissez d'abord le “customErrors” mode "on". (Ceci indique que les messages d'erreur personnalisés sont activés.)
1. Code à partir du Web.config
Ci-dessous mon code du contrôleur, j'ai spécifié le HandleError l'attribut de la classe du contrôleur. Aussi générer une erreur, je jette une exception à l'action Index.
2. Code de HomeController.cs
Comme vous pouvez le voir dans la capture d'écran ci-dessous, j'ai une Erreur.cshtml vue définie à l'intérieur du dossier Partagé du dossier Vues.
3. L'Explorateur De Solutions
Remarque que l'Erreur.cshtml vue (voir ci-dessous) utilise un modèle de Système.Web.Mvc.HandleErrorInfo’
4. Code de l'Erreur.cshtml
Sur l'exécution du projet, au lieu d'obtenir le jaune de la mort d'écran maintenant, j'obtiens le résultat suivant.
Prises de cet article
Mise à jour :
Essayez ceci par la création d'un nouveau projet, ce qui devrait et ne fonctionne pas. Je suppose que vos
Error.cshtml
fichier peut ne pas avoir de modèle@model System.Web.Mvc.HandleErrorInfo
ou vous pouvez avoir de multiples Erreurs.cshtml pages en vue différents dossiers.ajout d'une mise à jour dans la réponse
Si cela ne fonctionne toujours pas, consultez la réponse sur la modification du droit du web.config - c'est ce qui a été à l'origine du problème dans mon cas.
Je suis heureux que j'ai trouvé. Je devenais fou, parce que 1) j'ai été l'édition du mal web.config, et 2) je n'ai pas le modèle sous la forme
System.Web.Mvc.HandleErrorInfo
. +1!OriginalL'auteur Yasser
Je fixe la mienne.. C'est en fait l' *_Layout* page ne peut pas être rendue parce que mon
_Layout.cshtml
a été fortement tapé dans une base de modèle de vue quiHandleErrorInfo
ne peut pas être intégré dans. Et vous ne pouvez pas voir cette page de liaison de message d'erreur, car il ne se produit que lorsquecustomError
est sur... c'est tout simplement génial.Je suis "ne'hing!" donc dur en ce moment! Merci pour l'astuce!
OriginalL'auteur rwei
L'une des raisons qui pourraient conduire à ce que vous rencontrez:
Quelque chose dans votre _layout est à l'origine d'une exception à lancer lorsque l'Erreur".cshtml " est rendu.
Faire un test de l'ajout de
dans votre Erreur.cshtml".
OriginalL'auteur Olivier Leneveu
J'ai eu le même problème quand j'ai été mise à jour le mauvais
web.config
fichier.Il y a un
web.config
dans leViews
dossier et également dans le cadre du projet du site d'application.La solution serait de mettre à jour
web.config
situé au titre du projet.Je suis sur MVC3 et tout juste d'ajouter ci-dessous les paramètres web.config et personnalisée de la page et ça marche pour moi.
<customErrors mode="On" defaultRedirect="~/Views/Shared/Error.cshtml">
<erreur de redirection="~/Home/NotFound" statusCode="404" /> '</customErrors>OriginalL'auteur Rajeev
Cela ne fonctionne pas avec Visual Studio Express Edition. Cela fonctionne si vous êtes à l'aide de Professionnel ou Édition intégrale de l'IDE de Visual Studio.
OriginalL'auteur Julius Depulla