Der IIS mit ARR verhindert „by Default“ den Zugriff auf Adressen (URLs), die reservierte Zeichen enthalten. Genauer gesagt werden Anfragen mit solchen Zeichen von der IIS-Anfragefilterung blockiert und mit einen Fehler 404 beantwortet.
Die IIS-Anforderungsfilterung prüft standardmäßig auf viele verschiedene Dinge. Das Verhalten wird aber durch die Konfiguration gesteuert und kann (muss) pro Site angepasst werden.
Dazu gehören:
- Doppelte Escapezeichen (..%25)
- Prozent-Zeichen „%“-Zeichen
- Plus „+“-Zeichen (Leerzeichen, also auch „%2b“)
- Nicht-ASCII-High-Bit-Zeichen (ja, auch Emojies)
- Punkt im URI-Pfad, wenn eine Anfrage, die einen anderen Punkt als den für die Ressourcenerweiterung enthält, abgelehnt wird (http://foo/a.b/bar.aspx)
Lösung
In der betreffenden web.config
die Ausnahme für Double-Escaping hinzufügen:
<system.webServer>
<security>
<requestFiltering allowDoubleEscaping="true">
</requestFiltering>
</security>
[...]