先週、突然本当に変わった動作をしたMVC5/Razorアプリケーションがあります。これは、Windows Server 2008 R2(IIS 7.5)でホストされ、先週のWindowsアップデートのインストール後に問題が開始されました。それまでアプリケーションは正常に動作していました。MVC5申請書提出時に複数の投稿要求が発生する
ユーザーが10個のテキストフィールド、4個のテキストエリア、およびドロップダウンリストからなる単純なフォームを送信すると、サーバーが適切に応答せず、結果として「Error_Connection_Reset」(Chrome)/「ページ」利用できません "(IE11)。
通常、302応答とリダイレクトになるコントローラの受信動作では、RedirectToAction
のPOSTリダイレクトGETパターンを使用します。
形式は次のようにレンダリングされます:
[HttpPost]
[ValidateAntiForgeryToken]
[AllowAnonymous]
[ValidateInput(false)]
:
@using (Html.BeginForm("Create", "Controller"))
{
@Html.AntiForgeryToken()
<div class="editor-fields">
@Html.EditorFor(m => m.Model)
</div>
<div class="clear-fix"></div>
<div class="submit-area">
<input type="submit" value="Submit" />
</div>
}
アクションは、これらの属性を持っています
GoogleアナリティクスとjQuery、jQueryの検証、控えめなajaxと最適化(縮小)も使用します。ほとんどのJSスクリプトはScripts.Render
に含まれています。
私たち自身のドメインからアクセスするとアプリケーションはうまく動作しますが、すべてのユーザーが外部からアクセスする必要があるため、このエラーを修正する必要があります。これはDNSの問題を示唆するかもしれませんが、私たちのITサポートはDNSがうまく見えており、最近変更されていないと言います。 inetpub\logs\LogFiles
で
- ログファイルには、すべてのステータスコード302が、無次GETリクエストと複数(3〜10)POSTリクエストを示しています。ここでは
は、我々が行われ、これまでに出て見つけたものですそして、実際には1つだけのPOSTリクエストとGETリクエストが必要です。
- ログファイルは
%windir%\System32\LogFiles\HTTPERR
で、Webサイトがアイドルタイムアウト値(デフォルトの20分)に達するたびに、何も表示されず、Timer_ConnectionIdle
というエラーが表示されます。 - ChromeとIE11でFiddlerとdevツールで検査されたリクエストとすべてが同じリクエストヘッダーを示しています。フィドラーでは
[Fiddler] ReadResponse() failed: The server did not return a complete response for this request. Server returned 0 bytes
が得られます。 Chrome Dev Toolsでは、ステータス列に(failed)
と表示されます。 - IISでキャッシングと圧縮が無効になっています。 web.configファイルで web.configファイルでのcustomErrorsをオフにし
- 追加
<modules runAllManagedModulesForAllRequests="true">
- は
- は、.NET 4.5に関するWindows Updateから、最近インストールされた更新プログラムをチェックグーグルを検索し、SOの答えのためにこれまでのところ無駄に。2および関連サポート技術情報の記事が、本当にこの問題に関連したように見えたが
- 編集述べた何も:はまた、私たちは失敗した要求トレースを有効にしますが、我々は唯一の
inetpub\logs\FailedReqLogFiles
フォルダ
面白いことに、Chrome Dev Toolsで[キャッシュを無効にする]チェックボックスをオンにすると、アプリケーションも正常に動作します。これはキャッシュ問題であり、IISで出力キャッシュをオンにした理由でもあります。
次のステップでは、新しいサーバー(Windows 2012およびIISの最新バージョン)を起動し、そこでアプリケーションをインストールします。または現在のサーバーにWireSharkをインストールして、要求をさらに調査します。しかし、誰かがこの行動を経験し、それに対する修正を知っていれば、今はただ修正するだけです。だから、助けてくれれば助けてください。