2 votes

ELMAH n'affiche pas tous les journaux d'erreurs du serveur SQL dans elmah.axd

J'ai configuré Elmah pour qu'il enregistre les erreurs dans le serveur SQL, l'application web enregistre toutes les erreurs dans la base de données mais toutes ne s'affichent pas dans la fenêtre de l'application. elmah.axd .

Certaines des erreurs qui manquent sont :

  • System.Web.HttpUnhandledException

    _shutDownMessage=HostingEnvironment initiated shutdown HostingEnvironment caused shutdown _shutDownStack=
    à System.Environment.GetStackTrace(Exception e, Boolean needFileInfo)
    à System.Environment.get_StackTrace()
    at System.Web.Hosting.HostingEnvironment.InitiateShutdownInternal()....

  • System.Web.HttpException

    L'état de la session n'est pas disponible dans ce contexte.

  • _shutDownMessage=Modification de la configuration de IIS HostingEnvironment a initié l'arrêt HostingEnvironment a provoqué l'arrêt CONFIG change _shutDownStack=
    à System.Environment.GetStackTrace(Exception e, Boolean needFileInfo)
    at System.Environment.get_StackTrace() .....

Voir les captures d'écran ci-jointes.

Comment faire en sorte que toutes les erreurs dans la base de données apparaissent dans le fichier elmah.axd ?

Lorsque je sauvegardais l'erreur dans le système de fichiers, tout allait bien, mais pas lorsque je suis passé à SQL Server.

Merci !

error logs in the database

error logs in showing in elmah.axd

5voto

Si je peux humblement m'appuyer sur ce que l'architecte en chef Atif a dit, dans votre Web.config c'est cette section :

<elmah>
  <errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="foo" />
</elmah>

Réglez-le sur :

<elmah>
  <errorLog type="Elmah.SqlErrorLog, Elmah" connectionStringName="foo" applicationName="*" />
</elmah>

Cela montrera tous les enregistrements d'erreurs de la base de données plutôt que les enregistrements qui correspondent au nom de l'application sous laquelle Elmah est exécuté. Si le nom de l'application n'est pas fourni, il ne renverra que les enregistrements qui correspondent à l'identifiant attribué par IIS, par exemple "/LM/W3SVC/10/Root".

Ceci est vraiment utile si vous avez une application qui est utilisée uniquement pour visualiser les erreurs Elmah enregistrées dans toutes les applications dans un environnement.

J'aime Elmah !

2voto

Atif Aziz Points 16967

Je pense que c'est parce que vous avez des noms d'application différents (voir la section Application dans votre capture d'écran) et SqlErrorLog n'affichera que les erreurs appartenant au nom de l'application que vous avez configuré dans votre fichier web.config (et en l'absence d'un tel identifiant, ELMAH utilisera par défaut un identifiant assigné par IIS, tel que /LM/W3SVC/10/ROOT ). C'est un choix délibéré, car il vous permet d'utiliser une base de données dorsale pour plusieurs applications web. Il est toujours préférable de configurer un nom d'application stable et logique. Si toutes ces erreurs concernent la même application, vous pouvez exécuter une commande de type UPDATE sur la table pour définir le Application à la même valeur.

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