Domanda

Non sto trovando questo per essere facile da installare; o c'è un passaggio mancante nella configurazione di installazione, non è funziona correttamente, o io in realtà non capiscono il suo scopo. C'è qualcosa di decisamente sbagliato qui. Il problema, ovviamente, deve essere me. Io non sono solo ottenere questo al lavoro. Ecco quello che ho fatto.

Creare una nuova applicazione MVC. Disposto il seguente sulla pagina About.aspx.     

        <% Throw new Exception ( "bla"); %>         Mettere contenuto qui.     

Hit pagina ottiene lo schermo giallo con l'eccezione.

Aggiungi elmah.dll alla directory bin.

Aggiungi a configurationSections file web.config:

<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>

Aggiungi a httpHandlers sezione seguente:

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

Aggiungere alla sezione moduli:

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

Aggiungere alla sezione handler:

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

Aggiungi una sezione ELMAH:

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

La cosa curiosa è che la parte ".XmlFileErrorLog" di quella stringa presentarsi rosso come un errore di ReSharper che indica che "Impossibile risolvere il simbolo '.ctor'", che quando guardo l'elmah.dll in Reflector mostra questo oggetto di richiedere sia una "stringa" o un "IDicationary" in uno dei due costruttori pubblici.

Sono in esecuzione Windows Vista x64 con VS 2008. Sito autorizzazione per l'App_Data a tutti come Co_Owner.

Il http: // localhost: xxxx / elmah.axd pagina viene in su e non mostra errori . Quando mi ha colpito il mio schermo giallo "About" di nuovo vedo ancora e elmah.axd mostra ancora nessun errore la cartella App_Data.

Ho sostituito le customErrors con e creato pagina associata:

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

la pagina personalizzata spettacoli ma elmah.axd mostra ancora "nessun errore". App_Data ancora vuoto!

Per quanto fonte di iniziare questa impostazione che ho usato: code.google.com/p/elmah/wiki/MVC

Allora, dove sono io incasinato a?

~ - = Mike = - ~

È stato utile?

Soluzione

Controlla se ErrorLogModule è presente in entrambi configuration/system.web/httpModules (utilizzato se siete in materia di sviluppo Web Server) e configuration/system.webServer/modules (usato da IIS7). Ecco il frammento di web.config dal progetto, Attualmente sto lavorando su:

<?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>

Spero che questo aiuti

Altri suggerimenti

Prova a rimuovere questa sezione:

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

Ciò significa che Elmah è l'installazione di utilizzare solo la registrazione di default in memoria. Questo aiuto risoluzione dei problemi, perché si sa che non è una cosa permessi dei file. Quindi, una volta che hai preso a lavorare con in memoria di registrazione è possibile impostare fino a registrare in un file XML.

Si consiglia inoltre di controllare questa domanda StackOverflow, Come arrivare ELMAH a lavorare con ASP.NET MVC [HandleError] attributo? , che è stato risposto con Atif Aziz se stesso.

HTHS, Charles

ho installato da elmah NuGet e elmah on XML log, non ha ottenuto il funcionality atteso, anche se ho potuto accedere http://localhost/elmah.axd, ma nessun errore di cattura.

ho dato il permesso di scrittura sul conto IIS_IUSERS nella cartella App_Data ed è iniziato a lavorare per HTTP 404 errori e gli errori che sono al di fuori delle infrastrutture MVC. Ma non registrava eccezioni all'interno del MVC. La soluzione è stata l'installazione di elmah.mvc pacchetto da NuGet e ha iniziato l'acquisizione di tutte le eccezioni.

Se la configurazione è OK, poi basta installare il pacchetto elmah.mvc da NuGet e dovrebbe iniziare l'archiviazione dei log anche all'interno di MVC, non solo HTTP 404.

Il problema è questa linea

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

Sostituirlo da

<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top