2010-01-26 8 views
6

Ich habe einige der älteren Fragen durchgesehen, aber ich kann nichts finden.Wildcard HttpHandler behandelt statische Dateien nicht

Ich habe eine Wildcard Httphandler auf meinem Web-App, die die URL verarbeitet und arbeitet, wenn sie mit ihm alles machen können

Wenn es nicht, dann ist der Static Handler es abholen sollte und es nur dazu dienen, als statische Datei (wie eine HTML-Datei).

Das Problem ist, es geht durch den Wildcard-Handler, dann scheinbar nicht zum StaticFileHander gehen. Was muss ich mit dem Wildcard-Handler oder der Web-Konfiguration tun?

Das ist mein web.config:

<add name="Wildcard" path="*" verb="*" type="Rewriter.RewriterHttpModule" 
modules="IsapiModule" requireAccess="None" allowPathInfo="false" 
preCondition="" responseBufferLimit="4194304" /> 

<add name="StaticFile" path="*.*" verb="*" 
modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule" 
scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" 
resourceType="File" requireAccess="Read" allowPathInfo="false" preCondition="" 
responseBufferLimit="4194304" /> 
+1

Teilen Sie uns Ihre IIS-Konfiguration mit. Ihre web.config spielt keine Rolle, wenn IIS die Anfrage nicht an ASP.NET weitergibt. – Bryan

+0

Ich habe nichts besonders in IIS7 geändert, es ist einfach was auch immer das * Standard * Setup ist. Es läuft im Standard-App-Pool, obwohl – Paul

Antwort

3

Vielleicht ist Ihr Httphandler sollte ausdrücklich die Anforderung an den StaticFileHandler abgehen.

+0

Ja, das ist, was ich dachte, aber wie machst du das? StaticFileHandler ist eine interne Klasse, so dass ich sie am Ende des Handlers nicht verwenden kann, und Sie können sie nicht in der Datei web.config hinzufügen, wenn sie nicht vom ReWriteHandler übernommen wird der nächste ... – Paul

+0

Versuchen Sie, dem statischen Handler einen Pfad zu geben, und leiten Sie ihn nur vom RewriteHandler an ihn weiter – hunter

3

zu verfolgen, was Hunter sagte, ja, vielleicht diesen Eintrag Ihr Web.Config-Mapping nach dem ersten Platzhalter hinzufügen:

<add verb="*" path="*" type="System.Web.StaticFileHandler" /> 

nur so ein Gedanke. Habe das oder etwas nicht getestet.

2

Überprüfen Sie den Anwendungspool-Pipeline-Modus. Wenn es Classic ist, müssen Sie Ihre Handler im Bereich <httpHandlers> konfigurieren. Wenn es integriert ist, sollten Sie den Abschnitt <handlers> in web.config verwenden.

Verwandte Themen