2013-07-21 6 views
5

Ich habe eine IIS 7.5-Website mit .NET 4.0 im klassischen Pipeline-Modus.Application_BeginRequest nicht für JPG auf Produktionsserver ausgelöst

ich ein einfaches Standard-Image-Setup erstellt habe, in dem, wenn ein Bild aufgerufen wird, sondern die physische Datei wird auf einen Standardbild umgeleitet die Anforderung nicht existieren, um den folgenden Code in dem Application_BeginRequest Ereignisse mit:

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

Diese funktioniert gut auf meinem VS2010-Entwicklungsserver, aber in einer Produktionsumgebung wird das Application_BeginRequest-Ereignis nicht für JPG-Anforderungen aufgerufen, und alles, was ich bekomme, ist der Standardfehler HTTP 404 Error 404.0 - Not Found.

Ich habe versucht, die runAllManagedModulesForAllRequests Option in der Web.Config auf true gesetzt wird, aber dies scheint nicht zu helfen:

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

Von meinem Verständnis das alle Anforderungen verursachen sollte durch .NET gehen und damit auslösen die Application_BeginRequest-Ereignis?

Gewünschtes Ergebnis:

würde ich alle Anfragen gerne über .NET gehen, so dass das Application_BeginRequest Ereignis für JPGs genannt wird und ein Standardbild wird zurückgegeben, wenn kein Bild gefunden wird.

Antwort

3

Das wird nicht passieren mit Classic-Modus, müssen Sie in den integrierten Modus wechseln.

This Artikel könnte einen Einblick geben.

+0

danke, das hat es geschafft! – antfx

Verwandte Themen