2010-12-15 5 views
1

J'ai un site MVC2 sur lequel nous effectuons de nombreux tests d'intégration. Plus important encore, nous testons le comportement lorsque nous utilisons de mauvaises URL. Par exemple:IIS7 ne retourne pas HTTP 400 pour une mauvaise requête

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

(. Notez les deux barres obliques après "v1")

Cela devrait donner un HTTP 400, Bad Request et dans l'environnement de développement (VS2008) tout fonctionne comme prévu. Mais sur l'environnement de test, IIS7 ou MVC2 voit d'une manière ou d'une autre à travers cela et les réponses comme s'il n'y avait qu'un seul slash. Il semble être trop «intelligent», et nous aide en réécrivant la demande.

Comment est-ce que je peux configurer mon serveur pour qu'il ne soit pas "intelligent", et pour vraiment répondre avec l'erreur correcte?

Le serveur de test est Windows Server 2008 avec IIS7.

Merci! - Niklas

Répondre

1

Le code d'état HTTP 400 est défini comme suit:

La demande avait une mauvaise syntaxe ou était impossible par nature à satisfaire.

Avoir une barre oblique supplémentaire dans l'URI (qui est seulement une partie de la demande dans son ensemble) ne peut à juste titre être classé comme une erreur de syntaxe de la requête, et ne fait-il qu'il est impossible de satisfaire la demande , car la barre oblique supplémentaire ne modifie pas l'emplacement pointé par l'URI.

Je pense que votre serveur Web de développement est celui qui se comporte mal et que la prémisse de votre test est erronée.

+0

Klaus, merci pour votre réponse. Mais comment se fait-il que MVC se base sur les informations de chemin pour les requêtes, n'est-il pas vraiment important que le chemin soit intact? Pouvez-vous clarifier ou expliquer? Merci! –

+0

Je suppose que mvc assainit l'URL en supprimant les barres obliques redondantes, laissant ainsi le chemin intact. Stackoverflow utilise également MVC. Si vous ajoutez un nombre quelconque de barres obliques à l'url de cette question, tout se comporte normalement. Ce qui m'amène à croire que MVC gère les barres obliques supplémentaires en les supprimant simplement. –

+0

Oui, cela semble probable, et maintenant je cherche un moyen de désactiver cette aseptisation ... :-) Merci beaucoup! –

Questions connexes