268 votes

CustomErrors mode="Off"

Je reçois une erreur chaque fois que je télécharge ma webapp vers le fournisseur. À cause du mode customErrors, tout ce que je vois est le message par défaut "Runtime error", m'indiquant de désactiver customErrors pour en savoir plus sur l'erreur.

Exaspéré, j'ai configuré mon web.config pour qu'il ressemble à ceci :

<?xml version="1.0"?>
<configuration>
    <system.web>
        <customErrors mode="Off"/>
    </system.web>
</configuration>

Et pourtant, tout ce que j'obtiens, c'est cette stupide page d'erreurs à distance qui ne contient aucune information utile. Que puis-je faire d'autre pour désactiver customErrors ? !

1 votes

Essayez d'ajouter @Model.Exception.Message à la Shared/Error.cshtml

0 votes

En général, il faut faire attention aux transformations de la configuration (par exemple Web.Debug.config qui pourrait changer cette valeur), et faire attention aux définitions doubles de cette section/propriété dans le fichier (ce qui n'était clairement pas le cas ici).

174voto

Cela m'a rendu fou ces derniers jours et je n'arrivais pas à le contourner, mais j'ai finalement trouvé la solution :

Dans mon fichier machine.config, j'avais une entrée sous <system.web> :

<deployment retail="true" />

Il semble que cela remplace tous les autres paramètres de customError que vous avez spécifiés dans un fichier web.config, de sorte que la définition de l'entrée ci-dessus en :

<deployment retail="false" />

signifie que je peux à nouveau voir les messages d'erreur détaillés dont j'ai besoin.

El machine.config est situé à

32 bits

%windir%\Microsoft.NET\Framework\[version]\config\machine.config

64 bits

%windir%\Microsoft.NET\Framework64\[version]\config\machine.config 

J'espère que cela aidera quelqu'un d'autre et que cela lui évitera de se tirer les cheveux pendant quelques heures.

147voto

jmfsg Points 18246

"Off" est sensible à la casse.

Vérifiez si le "O" est en majuscule dans votre fichier web.config, j'ai souffert de cela plusieurs fois (aussi simple que cela puisse paraître).

52voto

Cyberherbalist Points 4564

Dans le but d'ajouter d'autres situations à cette question (car c'est ici que j'ai cherché parce que j'avais exactement le même problème), voici ma réponse :

Dans mon cas, j'ai coupé/collé le texte de l'erreur générique disant en effet si vous voulez voir ce qui ne va pas, mettre

<system.web>
   <customErrors mode="Off"/>
</system.web>

Donc cela aurait dû le réparer, mais bien sûr non ! Mon problème était qu'il y avait un nœud <system.web> plusieurs lignes au-dessus (avant un nœud de compilation et d'authentification), et une balise de fermeture </system.web> quelques lignes en dessous. Une fois que j'ai corrigé cela, OK, problème résolu. Ce que j'aurais dû faire, c'est copier/coller uniquement cette ligne :

<customErrors mode="Off"/>

Ceci est tiré des annales des Choses Stupides que je continue à faire encore et encore, dans le chapitre intitulé "Copier et Coller votre chemin vers la destruction".

0 votes

Question : Cette réponse implique que l'ASP lit le fichier web.config et les autres fichiers de configuration depuis le haut, c'est-à-dire de haut en bas. Je pensais que les fichiers de configuration étaient lus comme une "instance unique", ce qui signifie que le compilateur analyse d'abord le fichier de configuration pour en vérifier l'exactitude, puis le compile, mais il semble le compiler à la volée, ligne par ligne. Est-ce bien le cas ?

0 votes

@Fernando68, il serait peut-être préférable de poser une question distincte - une discussion dans les commentaires n'est pas vraiment optimale. Je ne suis pas un ingénieur .NET, mais il est clair que .NET ne le compile pas ligne par ligne. C'est un fichier Xml, et il est donc hiérarchisé. Mais si la hiérarchie est mal formée, l'analyseur Xml lèvera une exception en l'analysant. En d'autres termes, il doit prendre le fichier Xml dans son ensemble - mais s'il rencontre un mauvais Xml, il ne peut pas du tout construire l'objet requis !

0 votes

Je l'ai déjà soulevé comme une question distincte stackoverflow.com/questions/30471043/ . Merci pour votre réponse, qui correspond effectivement aux réponses que j'ai obtenues dans mon autre message. Au revoir

10voto

Rubens Farias Points 33357

Pour les applications Sharepoint 2010, vous devez également éditer C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\web.config et définir <customErrors mode="Off" />

7voto

digitaljeebus Points 51

Vous pouvez généralement trouver plus d'informations concernant l'erreur dans l'observateur d'événements, si vous y avez accès. Votre fournisseur peut également avoir empêché l'affichage des erreurs personnalisées, soit en les remplaçant dans son fichier machine.config, soit en définissant l'attribut de détail sur true ( http://msdn.microsoft.com/en-us/library/ms228298(VS.80).aspx ).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X