Question

Je ne trouve pas que cela soit facile à installer; soit il y a une étape manquante dans la configuration de l'installation, il est fonctionne pas correctement, ou je ne comprends pas vraiment son but. Il y a quelque chose vraiment mal ici. Le problème doit évidemment être moi. Je suis tout simplement pas obtenir que cela fonctionne. Voici ce que je l'ai fait.

Créer une toute nouvelle application mvc. Placé ce qui suit sur la page About.aspx.     

        <% Throw new Exception ( "bla"); %>         Mettez le contenu ici.     

Hit la page obtenir l'écran jaune à l'exception.

Ajouter elmah.dll au répertoire bin.

Ajouter au fichier web.config configurationSections:

<sectionGroup name="elmah">
  <section name="security" requirePermission="false" type="Elmah.SecuritySectionHandler, Elmah" />
  <section name="errorLog" requirePermission="false" type="Elmah.ErrorLogSectionHandler, Elmah" />
  <section name="errorMail" requirePermission="false" type="Elmah.ErrorMailSectionHandler, Elmah" />
  <section name="errorFilter" requirePermission="false" type="Elmah.ErrorFilterSectionHandler, Elmah" />
</sectionGroup>

Ajouter au httpHandlers section qui suit:

<add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />

Ajouter à la section modules:

<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah"/>

Ajouter à la section de gestionnaire:

<add name="Elmah" verb="POST,GET,HEAD" path="elmah.axd" preCondition="integratedMode" type="Elmah.ErrorLogPageFactory, Elmah"/>

Ajouter une section ELMAH:

<elmah>
  <errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~/App_Data" />
</elmah>

Ce qui est curieux est que la partie « .XmlFileErrorLog » de cette chaîne apparaissent rouge comme une erreur de ReSharper indiquant qu'il « ne peut pas résoudre le symbole« .ctor » qui, lorsque je regarde le elmah.dll réflecteur montre ce objet d'exiger soit une « chaîne » ou un « IDicationary » dans l'un des deux constructeurs publics.

Je suis en cours d'exécution 64 bits Windows Vista avec VS 2008. Set autorisation sur le App_Data à tout le monde comme Co_Owner.

Le http: // localhost: xxxx / elmah.axd ne se montre et aucune erreur . Quand je frappe ma page « About » à nouveau, je vois encore l'écran jaune et elmah.axd montre encore aucune erreur le dossier App_Data.

I substitué avec les customErrors et créé page associée:

<customErrors mode="On" defaultRedirect="GenericErrorPage.htm" />

Les spectacles de page personnalisés mais elmah.axd montre encore « Aucune erreur ». App_data encore vide!

Comme la source pour commencer cette configuration je: code.google.com/p/elmah/wiki/MVC

Alors, où suis-je foiré à?

~ - = Mike = - ~

Était-ce utile?

La solution

Vérifiez si ErrorLogModule est présent dans les deux configuration/system.web/httpModules (utilisé si vous êtes sur le développement Web Server) et configuration/system.webServer/modules (utilisé par IIS7). Voici le fragment de web.config du projet, je travaille actuellement sur:

<?xml version="1.0"?>
<configuration>
    <system.web>
        <httpModules>
            <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah"/>
            <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" />
        </httpModules>
    </system.web>
    <system.webServer>
        <validation validateIntegratedModeConfiguration="false" />
        <modules runAllManagedModulesForAllRequests="true">
            <remove name="ErrorLog" />
            <remove name="ErrorMail" />
            <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" preCondition="managedHandler" />
            <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" preCondition="managedHandler" />
        </modules>
    </system.webServer>
</configuration>

Hope this helps

Autres conseils

Essayez de supprimer cette section:

<elmah>
  <errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~/App_Data" />
</elmah>

Cela signifie que Elmah est configuré pour utiliser simplement la valeur par défaut en mémoire l'enregistrement. Cette difficulté d'aide tir parce que vous savez que ce n'est pas une chose d'autorisation de fichier. Donc, une fois que vous l'avez travailler avec la connexion en mémoire, vous pouvez le configurer pour vous connecter à un fichier xml.

Vous pouvez également consulter cette question stackoverflow, Comment obtenir ELMAH travailler avec ASP.NET MVC [HandleError] attribut , qui a été répondu par Atif Aziz lui-même.

HTHS, Charles

J'ai installé de NuGet elmah et elmah on XML log, n'a pas obtenu le fonctionalité attendu même si je pouvais accéder http://localhost/elmah.axd, mais pas de capture d'erreur.

J'ai donné l'autorisation d'écriture aux IIS_IUSERS de compte dans le dossier App_Data et il a commencé à travailler pour des erreurs HTTP 404 et les erreurs qui sont en dehors de l'infrastructure MVC. Mais il ne consignait exceptions à l'intérieur du mvc. La solution a été d'installer elmah.mvc package NuGet et il a commencé à capturer toutes les exceptions.

Si votre config est OK, alors il suffit d'installer le paquet elmah.mvc de NuGet et il devrait commencer à stocker les journaux aussi à l'intérieur mvc, non seulement HTTP 404.

Le problème est cette ligne

  <customErrors mode="On" defaultRedirect="GenericErrorPage.htm">

Remplacer par

<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top