2

ユーザー入力を収集するための多数のフォームを持つ MVC3 アプリケーションがあります。フォームは、jQuery を使用したクライアント側の検証に依存しています。ローカルの IIS 7.5 インストールでテストすると、すべてが正しく機能します。実稼働環境 (IIS 7.5 も) では、フォームの 3 つで、入力ビュー モデルの POST アクションで null 値を持つ断続的な障害が発生しています。いくつかの障害診断コードを追加し、これが発生したときに Request.Params コレクションに名前の値として null 値または空の文字列が含まれていることを確認しました。これはかなりランダムに見えますが、特定のフォームでのみ確認されています。誰かがこのようなことを経験したことがありますか?解決策を見つけましたか?

運用環境は次のとおりです。 ユーザーは RDP 経由で Wi​​ndows Server 2003 RDP クライアント/IE8 に接続します。ユーザーは RDP セッションで IE8 ブラウザーを実行して、Windows Server 2008 R2/IIS 7.5 に接続します。

この問題は、ブラウザとサーバー間の特定のネットワーク接続でのみ発生しているようです。2 番目のネットワークでは、これらの問題は発生していません。

4

1 に答える 1

1

ファイアウォール レベルで設定されている MTU サイズを確認しましたか。これが低すぎると、問題が発生する可能性があります。無関係な VPN 接続の問題を解決するために MTU サイズが 1300 に縮小されたという同じ問題を見てきました。ファイアウォール レベルで MTU サイズを 1500 に増やすと、問題は解決しました。

HTTP POST 要求は、複数のパケットで送信されます。最初のパケットにはヘッダーが含まれ、2 番目のパケットにはリクエストの本文が含まれます。ネットワーク遅延があると、本体が失われることがあります。

IIS6 では、要求全体が受信されるまで IIS パイプラインは要求の処理を開始せず、タイムアウトが発生しました (ロード バランサーを使用している場合はゲートウェイ タイムアウト 504)。IIS7 では、タイムアウトは発生しませんが、CONTENT-LENGTH がゼロでなくても、本文が空の投稿が表示されます。

私はまだこの問題を抱えており、代わりに GET リクエストに戻ろうとしています。それらは単一のパケットであるため、より高速です。

于 2013-01-17T09:01:19.990 に答える