2013-07-21 14 views
5

Possiedo un sito Web IIS 7.5 che esegue .NET 4.0 in modalità pipeline classica.Application_BeginRequest non attivato per JPG sul server di produzione

Ho creato una semplice impostazione un'immagine predefinita in cui se un'immagine è chiamato, ma il file fisico non esiste la richiesta viene reindirizzata a un'immagine predefinita utilizzando il seguente codice nell'evento Application_BeginRequest:

protected void Application_BeginRequest(object sender, EventArgs e) 
{ 
    if (Request.PhysicalPath.EndsWith(".jpg") && File.Exists(Request.PhysicalPath) == false) 
    { 
     Context.RewritePath("~/images/nophoto.jpg"); 
    } 
} 

Questo funziona bene sul mio server di sviluppo VS2010 ma quando su un ambiente di produzione l'evento Application_BeginRequest non viene chiamato per le richieste JPG e tutto quello che ottengo è l'errore HTTP standard 404.0 - Errore non trovato.

Ho provato impostando l'opzione runAllManagedModulesForAllRequests nel web.config per vero, ma questo non sembra aiutare:

<system.webServer> 
    <modules runAllManagedModulesForAllRequests="true"></modules> 
</system.webServer> 

Dalla mia comprensione questo dovrebbe causare tutte le richieste di passare attraverso .NET e quindi innescare il Application_BeginRequest event?

Risultato desiderato:

vorrei tutte le richieste di passare attraverso .NET in modo che l'evento Application_BeginRequest viene chiamato per JPG e un'immagine predefinita viene restituito se non viene trovata alcuna immagine.

risposta

3

Ciò non accadrà con la modalità Classica, è necessario passare alla modalità integrata.

This articolo potrebbe fornire un approfondimento.

+0

grazie, l'ha fatto! – antfx

Problemi correlati