2010-12-15 8 views
1

私は、多くの統合テストを実行するMVC2サイトを持っています。最も重要なのは、不正なURLを使用するときの動作をテストすることです。例えば:IIS7は悪い要求に対してHTTP 400を返さない

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

( "V1" の後に2つのスラッシュに注意してください。)

を。これは、HTTP 400、不正な要求を得なければならない、と計画通り開発環境(VS2008)ですべての作品。しかし、テスト環境では、IIS7またはMVC2は、何らかの形でスラッシュが1つしかないかのように、これと応答を見ています。それはあまりにも "賢い"と思われ、要求を書き直すことによって私たちを助けます。

サーバを「スマート」にしないように設定するにはどうすればよいですか?本当に正しいエラーで応答するにはどうすればよいですか?

テストサーバーは、IIS7を搭載したWindows Server 2008です。

ありがとうございます! - 次のようにニクラス

答えて

1

HTTPステータスコード400が定義されています

要求が不正な構文を持っていたか 満たすべき本質的に不可能でした。

URIの中に余分なスラッシュ(要求の一部分のみである)を要求の構文エラーとして正しく分類することはできず、要求を満たすことも不可能ではない余分なフォワードスラッシュは、URIが指す場所を変更しないためです。

あなたの開発Webサーバーは誤った動作をしており、テストの前提が間違っていると思います。

+0

クラウス、ご返信ありがとうございます。しかし、MVCがリクエストのパス情報にどのように依存しているのでしょうか?パスが完全であることが本当に重要ではありませんか?あなたは明確に説明することができますか?ありがとう! –

+0

私は、mvcが余分なフォワードスラッシュを削除することでURLを消毒して、パスをそのまま残すと仮定します。 StackoverflowはMVCも使用します。この質問のURLに任意の数のスラッシュを追加すると、すべて正常に動作します。 MVCがスラッシュを削除するだけで余分なフォワードスラッシュを処理すると私は思っています。 –

+0

はい、それはおそらく、そして今私はその消毒を無効にする方法を探しています... :-)多くのありがとう! –

関連する問題