2009-07-13 2 views
11

La mia applicazione ASP.NET MVC si trova all'interno di una cartella denominata Stuff all'interno della cartella Webroot di IIS 6.0. Quindi accedo alle mie pagine come http://localhost/Stuff/Posts. Avevo EMLAH mentre stavo usando il webserver integrato di Visual Studio. Ora quando accedo a http://localhost/Stuff/elmah.axd, ottengo l'errore di ricerca non trovata. Qualcuno può indicare il mio errore qui! Ecco la voce del file di configurazione,Errore "Risorsa non trovata" durante l'accesso a elmah.axd nel progetto ASP.NET MVC

<add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah"/> //Handler 
    <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah"/> 
    <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah"/> 
    <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah"/> //Module 
+0

"la nuova sezione system.webserver nel web.config" è solo per IIS7.0 ma nella domanda si sta chiedendo di IIS6.0. Quale versione di IIS stai usando esattamente? –

risposta

0

Puoi pubblicare il resto del tuo web.config?

Oppure, se sei abbastanza comodo, puoi semplicemente assicurarti che le sezioni httpHandlers e httpModules (NON gestori e moduli) siano correttamente compilate in web.config?

+1

Grazie ragazzi, In realtà, ho dovuto aggiungere le voci nel nuovo sistema.sezione webserver nel file web.config. – theraneman

+0

Ha funzionato anche per me. Perché non pubblichi questo come soluzione. – Martin

5

Hai aggiunto un ignora * .axd route in global.asax?

2

Per Elmah, abbiamo bisogno di distinguere tra due cose: Prima i moduli http che fanno tutto il lavoro di registrazione degli errori, e-mail ... ecc. In secondo luogo, i gestori http, visualizzando la pagina del registro errori e altre pagine (rss ... ecc.)

Avevo lo stesso problema di 404 risorsa non trovata perché ho una configurazione strana! sul mio computer di sviluppo, (windows 7, iis 7) elmah funzionava come un incantesimo perché il pool di applicazioni stava funzionando in modalità pipeline integrata. Nella macchina di produzione, tuttavia, l'applicazione utilizzava la pipeline gestita e ho fatto del mio meglio per far funzionare elmah ma era tutto inutile ...

Ho quindi avuto l'idea di visualizzare l'interfaccia utente (pagina del registro degli errori, rss, dettagli sull'errore, ...) usando le normali pagine di aspx. Ho scaricato il codice sorgente, ho apportato alcune modifiche (mi dispiace Atif, sono stato costretto a farlo perché avevo bisogno della soluzione più veloce) e poi nella mia applicazione, ho creato una cartella con cui ho creato regolari pagine aspx che ereditano da pagine definite da Elmah . La pagina contiene una sola linea (es: nella pagina di dettaglio: <% @ Page Language = Eredita "C#" = "Elmah.ErrorDetailPage" %>)

Ora, sono stato in grado di eseguire Elmah indipendentemente IIS 6/7 e sta funzionando come un fascino .. e mi ha salvato da un grande mal di testa di configurare correttamente i gestori HTTP e risoluzione dei problemi del suo lavoro! Inoltre, la configurazione della sicurezza è molto più semplice!

Non so se la comunità è interessata a questa soluzione (in tal caso, sono pronto a pubblicare le mie modifiche complete).

speranza che questo vi dà un'idea su come risolvere il problema in un modo alternativo (e se avete bisogno la DLL modificato con istruzioni complete su come usarlo, dimmi solo!)

1

Nell'applicazione impostazioni del pool in IIS set Managed Pipelin Mode a Classic se non si desidera modificare il codice o il file web.config. Il tuo axd.s funzionerà come prima.