Pour toute URL avec un signe plus (+) dans l'URL de base (pas dans la chaîne de requête), IIS7 et IIS7.5 (Windows Server 2008 et 2008 R2) ne semblent pas transmettre l'URL au gestionnaire par défaut d'une application ASP.NET. J'ai commencé à remarquer le problème avec un gestionnaire HTTP personnalisé sur *.html
mais j'ai le même problème avec *.aspx
. IIS6 (Server 2003) n'a aucun problème avec ces mêmes URL.
Pour reproduire le problème, dans un site ASP.NET, j'ai créé un ensemble de fichiers ASPX qui effectuaient un simple Response.Write avec différents noms :
- test_something.aspx
- test_some+thing.aspx
- test_some thing.aspx
Le troisième fichier était un test pour voir si IIS7[.5] traitait les symboles plus comme des espaces (comme il le ferait dans la chaîne de requête) ; cela ne semble pas être le cas. Avec tous ces fichiers en place, en accédant à http://somehost/test_some+thing.aspx
ou http://somehost/test_some%2bthing.aspx
, tout fonctionnera bien dans IIS6 mais renverra une erreur 404 dans IIS7/IIS7.5 avant d'atteindre un gestionnaire ASP.NET. Y a-t-il une configuration dans IIS7/7.5 que je n'ai pas vue pour lui permettre de "voir" un signe plus dans l'URL sans passer à côté de l'extension finale utilisée pour déterminer un gestionnaire HTTP ?