2010-01-26 4 views
6

J'ai jeté un œil à certaines des questions plus anciennes, mais je ne trouve rien.Wildcard HttpHandler ne gère pas les fichiers statiques

J'ai un Wildcard HttpHandler sur mon application web qui est traitement de l'URL et de travail si elle peut faire quelque chose avec elle

Si elle ne peut pas, le gestionnaire StaticFile doit le ramasser et juste servir en tant que fichier statique (comme un fichier html).

Le problème est, il passe par le gestionnaire de caractère générique, puis apparemment ne va pas à StaticFileHander. Y a-t-il quelque chose que je dois faire au gestionnaire de Wildcard ou à la configuration Web?

Ceci est mon 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

Parlez-nous de votre configuration IIS. Votre web.config n'aura aucune importance si IIS ne transmet pas la requête à ASP.NET. – Bryan

+0

Je n'ai rien modifié de particulier dans IIS7, c'est juste ce que l'installation * standard * est. Il fonctionne dans le pool d'applications par défaut bien que – Paul

Répondre

3

Peut-être votre HttpHandler devrait passer la demande à la StaticFileHandler explicitement.

+0

Ouais, c'est ce que je pensais, mais comment faites-vous cela? StaticFileHandler est une classe interne, donc je ne peux pas l'utiliser à la fin du gestionnaire, et vous ne pouvez pas l'ajouter dans le fichier web.config car, s'il est récupéré par le ReWriteHandler, il ne passe pas à le suivant ... – Paul

+0

Essayez de donner un chemin au gestionnaire statique et redirigez-le simplement() à partir de la fonction RewriteHandler. – hunter

3

Pour revenir sur ce que Hunter a dit, oui, peut-être ajouter cette entrée à votre web.config après la première application générique:

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

Juste une pensée. N'a pas testé ceci ou quoi que ce soit.

2

Vérifiez le mode pipeline du pool d'applications. S'il est classique que vous devez configurer vos gestionnaires dans la section <httpHandlers>. Si elle est intégrée, vous devez utiliser la section <handlers> dans web.config.

Questions connexes