2010-01-26 18 views
6

Ho dato un'occhiata ad alcune delle domande più vecchie, ma non riesco a trovare nulla.Wildcard HttpHandler non gestisce file statici

Ho un jolly HttpHandler sulla mia web app che sta elaborando l'URL e di lavoro se si può fare qualsiasi cosa con esso

Se non può, quindi lo StaticFile Handler deve raccoglierla e solo servire come un file statico (come un file html).

Il problema è che sta passando attraverso il gestore Wildcard, quindi apparentemente non sta andando su StaticFileHander. C'è qualcosa che devo fare per il gestore Wildcard, o nella configurazione web?

Questo è il mio 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

Descrivi la configurazione di IIS. Il tuo web.config non avrà alcuna importanza se IIS non sta trasferendo la richiesta ad ASP.NET. – Bryan

+0

Non ho modificato nulla in particolare in IIS7, è solo l'impostazione * standard *. È in esecuzione nel pool di app predefinito però – Paul

risposta

3

Forse il vostro HttpHandler dovrebbe passare la richiesta al StaticFileHandler in modo esplicito.

+0

Sì, è quello che pensavo, ma come si fa? StaticFileHandler è una classe interna, quindi non posso usarlo alla fine del Gestore, e non puoi aggiungerlo nel web.config come, se è raccolto da ReWriteHandler, non si sposta su il prossimo ... – Paul

+0

Prova a dare al gestore statico un percorso e solo Redirect() ad esso da RewriteHandler – hunter

3

dare un seguito a quello che Hunter ha detto, sì, forse aggiungere questa voce al vostro web.config in seguito alla prima mappatura jolly:

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

Solo un pensiero. Non ho provato questo o niente.

2

Controllare la modalità pipeline del pool di applicazioni. Se è classico, devi configurare i gestori nella sezione <httpHandlers>. Se è integrato, è necessario utilizzare la sezione <handlers> in web.config.