2014-01-28 3 views
5

Ich benutze Windows 7, IIS 7.5, .NET 4.5.
(Für Windows 8, IIS 8.5, .NET 4.5, das funktioniert).Wie IIS von der Entschlüsselung der URL zu stoppen

eine GET-Anforderung mit der URL ausführen:

http://my.host/api1/MyEntity('%2311282') 

Problem ist, dass, wenn es um Server die Zeichen% 23-Code wird bereits auf '#' decodiert wird und Uri Objekt denkt, dass es ein Fragment char ist. Win8-Maschine empfängt die URL mit Char% 23 unberührt.

Versuchte:
1) Mit dieser Konfiguration

<httpRuntime targetFramework="4.5" relaxedUrlToFileSystemMapping="true" /> 

2) hinzuzufügen, '/' in dem Ende der URL

http://my.host/api1/MyEntity('%2311282')/ 

3) Einstellen der URL Rewrite 2 Modul deinstalliert - und neu installieren. hat auch versucht, den Rewrite-Abschnitt in web.config für das Modul zu kommentieren.

Warum möchte ich Windows 8 Verhalten replizieren - nicht die URL dekodieren. Irgendwelche Ideen?

+0

Wieder einmal ein ziemlich schlechter dup flag imo. Fragen sind nicht gleich. Die Antwort des anderen sagt nur, warum es in IIS 7.5 codiert ist und nicht, wie es auf IIS7.5 zu verhindern ist, wie es die aktuelle Frage stellt. –

Antwort

4

Werfen Sie einen Blick in Rewrite Module.

einige Informationen here: PRESERVING ORIGINAL URL

Die URL Rewrite-Modul der ursprüngliche angeforderte URL-Pfad in den folgenden Servervariablen bewahrt:

HTTP_X_ORIGINAL_URL - dieser Server Variable in entschlüsselten Format die ursprüngliche URL enthält; UNENCODED_URL - Diese Servervariable enthält die ursprüngliche URL genau so, wie sie von einem Webclient angefordert wurde, wobei die ursprüngliche Codierung beibehalten wurde.

hoffe das hilft.

+0

Ich habe die Variablen in der Application_BeginRequest-Methode überprüft. Sie existierten dort nicht. Es hatte dort die "URL" -Variable mit dem dekodierten '#' Zeichen drin. irgendwelche Ideen? vielleicht habe ich an der falschen stelle nachgeschaut ... – taminov

+0

http://www.iis.net/learn/extensions/url-rewrite-module/using-the-url-rewrite-module werfen Sie einen Blick darauf. Normalerweise werden Rewrite-Regeln im entsprechenden Abschnitt von web.config platziert. –

+0

(1) Ich habe versucht, das -Tag zu kommentieren. (2) deinstallierte URL-Umschreibung 2 (3) neu installierte URL-Umschreibung 2 (4) unkommentiert den Umschreibabschnitt. All diese Schritte haben nicht geholfen. Ich denke, das Problem liegt jenseits der URL-Neufassung. – taminov

Verwandte Themen