J'essaie de traiter à la fois les requêtes de pages ".aspx" et non-extension (à la fois contact.aspx et/contact /) en utilisant un HttpHandler personnalisé dans IIS7. Mon gestionnaire fonctionne très bien dans un cas comme dans l'autre, mais dès que j'essaie de traiter les deux cas, cela ne fonctionne que pour un cas. S'il vous plaît voir Handlers snippet de mon web.config ci-dessous:Problème lors de l'utilisation de HttpHandler personnalisé pour traiter les demandes de pages .aspx et de non-extension dans IIS7
Si je ne garde que la cartographie à « * .aspx », puis toutes les demandes .aspx sont correctement traités, mais les demandes de toute évidence ne fonctionnera pas sans extension:
<add name="AllPages.ASPX" path="*.aspx" verb="*" type="Test.PageHandlerFactory, Test" preCondition="" />
Si je change le mappage en "*", toutes les demandes sans extension sont traitées correctement, mais les requêtes ".aspx" qui doivent encore être traitées par ce gestionnaire cessent de fonctionner. Notez que j'ajouté l'entrée StaticFiles afin de traiter les fichiers qui sont sur le disque comme des images, css, js, etc.
<add name="WebResource" path="WebResource.axd" verb="GET" type="System.Web.Handlers.AssemblyResourceLoader" />
<add name="StaticFiles" verb="GET,HEAD" path="*.*" type="System.Web.StaticFileHandler" resourceType="File" />
<add name="AllPages" path="*" verb="*" type="Test.PageHandlerFactory, Test" preCondition="" />
Ce qui est fou est que lorsque je charge une demande « .aspx » (avec le 2ème configuration illustrée) IIS7 donne une erreur 404 non trouvée. L'erreur indique également que la demande est traitée par le gestionnaire StaticFiles. Mais je me suis assuré d'ajouter resourceType = "File" à StaticFileHandler afin d'éviter cela. Selon MS, cela signifie que la demande concerne uniquement les "fichiers physiques sur le disque". Suis-je mal interpréter/interpréter la partie "sur le disque"?
Mon fichier .aspx n'est pas sur le disque, c'est pourquoi je veux utiliser le gestionnaire en premier lieu.