2010-12-15 4 views
3

J'ai du mal à obtenir un comportement similaire de mon serveur web dev [1] et de mon environnement de test [2], et je cherche maintenant à savoir pourquoi le dev retourne HTTP 400 Bad Request avec cet URI?Pourquoi Cassini traite-t-il les URI: s avec plusieurs barres obliques comme une mauvaise demande?

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

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

[1] Cassini dans VS2008 [2] Win Server 2008 avec IIS7

Merci à l'avance! - Niklas

PS. J'ai commencé cette recherche avec cette question, où on m'a dit que l'URI mentionné ci-dessus ne doit pas générer une demande Bad du tout:

IIS7 NOT returning HTTP 400 for a bad request DS.

+1

Je ne suis pas sûr que la double barre oblique est, techniquement, légale dans les URL HTTP. –

+0

Je ne suis pas sûr non plus, et il semble que Microsoft soit aussi en désaccord avec eux-mêmes, voyant que Cassini et IIS7 interprètent les règles différemment ... –

Répondre

1

Vous devez ne pas attendre comportement similaire entre le serveur de développement ASP.NET qui est intégré dans Visual Studio et le serveur Web IIS.

Ce sont généralement deux serveurs Web différents avec des bases de code différentes et des ensembles de fonctionnalités différents. Même s'ils se comportent de la même façon (ce qu'ils ne comprennent pas, par exemple, les fonctionnalités du serveur Web telles que SSL, les règles de réécriture d'URL, etc.), ne les attendez jamais. C'est juste une autre raison pour laquelle Microsoft a arrêté le développement du serveur de développement ASP.NET et a introduit IIS Express pour que votre développement et votre serveur Web de production soient de nouveau sur la même page.

donc ma recommandation pour vous est la suivante:

  • Arrêtez d'utiliser le serveur de développement ASP.NET
  • Commencez à utiliser IIS Express
  • encore ne vous attendez pas à se comporter de la même!
    En question, seul un système de test/mise en scène exécutant une véritable instance IIS peut vous donner l'expérience réelle!

Espérons que ça aide!

+0

Martin, merci pour cela! IIS Express semble être une meilleure option à bien des égards. Nous passons notre développement dans VS 2010, et je vais maintenant chercher à forcer l'utilisation d'IIS Express au lieu de Cassini dans ce processus. Heureusement, nous pouvons obtenir des résultats plus cohérents alors. –

+1

BTW: Je ne m'attendais jamais à ce que Cassini et IIS soient exactement pareils, mais je pensais qu'il y avait un standard dans l'interprétation des requêtes http que j'ai maintenant révisé ... –

+0

Je ne vois pas pourquoi deux serveurs web avec deux bases de code ne pourraient pas interpréter quelque chose aussi fondamental qu'une URL de la même manière. Mais les gens raisonnables pourraient certainement être en désaccord à ce sujet. – pnschofield

Questions connexes