Est-il possible de sauter un HttpHandler s'il n'y a pas de chaîne de requête?
-
06-07-2019 - |
Question
J'ai écrit un outil de redimensionnement d'image dynamique en tant que gestionnaire HttpHandler. Il est automatiquement appelé pour tout ce qui a une extension d'image, donc par exemple:
http://www.mysite.com/picture.jpg?width=200&height=100
lancera le gestionnaire et renverra une image miniature avec les en-têtes de réponse appropriés. Cependant, je souhaite que le gestionnaire laisse une requête "passer" si elle est appelée sans chaîne de requête:
http://www.mysite.com/picture.jpg
Je souhaite que ceci renvoie l'image avec les informations d'en-tête, comme si elle ne l'exécutait pas via le gestionnaire. Est-ce possible sans devoir coder manuellement dans les informations d'en-tête (ce qui implique d'ouvrir des flux de fichiers pour lire des données telles que la dernière date écrite), ou dois-je convertir mon gestionnaire en HTTPModule
à la place?
La solution
Un gestionnaire doit " gérer " la demande. C'est la fin de la chaîne. Vous devez soit en faire un HttpModule, soit servir l'image vous-même, que vous la redimensionniez ou non.
Autres conseils
Ne pourriez-vous pas simplement ajuster votre gestionnaire pour tenir compte de ce cas? Vous pouvez simplement vous assurer qu'il n'y a pas de paramètre de chaîne de requête, mapper simplement le chemin d'accès à la requête sur le disque et renvoyer l'image directement en l'ouvrant et l'écrire dans le flux de sortie.