Per qualsiasi URL con un segno più (+) nell'URL di base (non la stringa di query), IIS7 e IIS7.5 (Windows Server 2008 e 2008 R2) non sembrano inoltrare l'URL al gestore predefinito in un'applicazione ASP.NET . Ho iniziato a notare il problema con un gestore HTTP personalizzato attivo *.html
ma ho lo stesso problema con *.aspx
. IIS6 (Server 2003) non ha problemi con questi stessi URL.
Per replicare il problema, in un sito ASP.NET, ho creato una serie di file ASPX che eseguivano un semplice Response.Write con vari nomi:
- test_something.aspx
- test_some + thing.aspx
- test_some thing.aspx
Il terzo file è stato un test per vedere se IIS7 [.5] trattava i simboli plus come spazi (come farebbe nella stringa di querystring); questo non sembra essere il caso. Con tutti questi file in atto, colpire http://somehost/test_some+thing.aspx
o http://somehost/test_some%2bthing.aspx
funzionerà bene in IIS6 ma 404 in IIS7 / IIS7.5 prima di arrivare a qualsiasi gestore ASP.NET. C'è qualche configurazione in IIS7 / 7.5 che mi manca per far sì che "veda" un segno più nell'URL senza perdere l'estensione finale utilizzata per determinare un gestore HTTP?
\+
?