2010-12-15 7 views
3

Ich habe Schwierigkeiten, ein ähnliches Verhalten von meinem Entwickler-Webserver [1] und meiner Testumgebung [2] zu bekommen, und schaue jetzt, warum der Entwickler HTTP 400 Bad Request mit diesem URI zurückgibt?Warum behandelt Cassini URI: s mit mehreren Schrägstrichen als ungültige Anforderung?

http://localhost:1234/v1//Dy888/1/1234567815/swlocation?fv=24&sv2=3&sv3=5

(Beachten Sie die beiden Schrägstriche nach "v1".)

[1] Cassini in VS2008 [2] Win Server 2008 mit IIS7

Vielen Dank im Voraus! - Niklas

PS.

IIS7 NOT returning HTTP 400 for a bad request DS: überhaupt ein Bad Request nicht erzeugen sollte Ich begann diese Suche mit dieser Frage, wo mir gesagt wurde, dass der URI oben erwähnt.

+1

Ich bin nicht sicher, dass doppelter Schrägstrich technisch in HTTP-URLs legal ist. –

+0

Ich bin mir auch nicht sicher, und es scheint, dass Microsoft auch nicht mit sich selbst übereinstimmt, da Cassini und IIS7 die Regeln anders interpretieren ... –

Antwort

1

Sie sollten erwarten nicht ähnliches Verhalten zwischen dem ASP.NET Development Server, der in Visual Studio und den IIS-Webserver integriert kommt.

Sie sind in der Regel zwei verschiedene Webserver mit unterschiedlichen Codebasen und verschiedenen Feature-Sets. Selbst wenn sie sich ähnlich verhalten sollten (was sie definitiv nicht tun, beispielsweise Webserver-Funktionen wie SSL, URL-Rewrite-Regeln, etc.), erwarten Sie niemals, dass sie dies tun.

Das ist nur ein weiterer Grund, warum Microsoft die Entwicklung für den ASP.NET Development Server gestoppt und IIS Express eingeführt hat, um Ihre Entwicklung und Ihre Produktion Webserver Erfahrung wieder auf der gleichen Seite zu erhalten.

Also für Sie ist meine Empfehlung:

  • Stop, um den ASP.NET Development Server
  • starten mit IIS Express
  • Noch ihnen die gleiche Verhalten nicht erwarten, dass mit!
    In Frage kann nur ein Test/Staging-System, das eine echte IIS-Instanz ausführt, Ihnen die echte Erfahrung geben!

Hoffe, dass hilft!

+0

Martin, danke dafür! IIS Express klingt in vielerlei Hinsicht besser. Wir verschieben unsere Entwicklung in VS 2010, und ich werde nun in diesem Prozess die Verwendung von IIS Express anstelle von Cassini erzwingen. Hoffentlich können wir dann konsistentere Ergebnisse erzielen. –

+1

BTW: Ich habe nie erwartet, dass Cassini und IIS genau gleich sind, aber ich dachte, dass es einen Standard bei der Interpretation von HTTP-Anfragen gibt, den ich jetzt überarbeitet habe ... –

+0

Ich sehe keinen Grund, warum zwei Webserver mit zwei Codebasen etwas nicht interpretieren können so grundlegend wie eine URL auf die gleiche Weise. Aber vernünftige Leute könnten sicherlich anderer Meinung sein. – pnschofield

Verwandte Themen