分類:[ASP.NET]
特定のPCのIEがIISの応答(PostBack)を処理しないことが多々発生して困っています
例えばこんなコード
Protected Sub ButtonStart_Click(sender As Object, e As System.EventArgs) Handles ButtonStart.Click
System.Threading.Thread.Sleep(20 * 60 * 1000)
End Sub
を実行した場合IEがサーバーからの応答待ちの状態のままになることが発生しました
しかしIISのログを確認したらGet PostともにHttp Statusは200 0 0で正常に処理されたことになっているのでIIS側の問題ではないとおもっています
再現するPCが限定されているのでWindowsUpdate、不要なアドオンの削除、IEの初期化等考えられることは全てやったのですが状況は変わりませんでした
もう何をチェックしたらよいのかもわからない状態です
・問題を切り分けるために何をチェックしたらよいでしょうか?
・何か考えられる原因や対策方法はあるでしょうか?
よろしくお願いします
環境
サーバー Windows2003Server(64bit) FrameWork 2.0(32bit)
端末側 WindowsXp IE8(WindowsUpdateは最新です)
リクエストは成功しているけれどもクライアントは応答待ちのまま、
ということから考えると、サーバーからクライアントへのレスポン
スの通信に時間がかかっているのですかね。私は、プロキシ サー
バーを使用する設定にしたことを忘れていて、なんでこんなに通信
速度が遅いのかと、途方にくれたことが何度かあります。
もりおさんいつも回答ありがとうございます
> スリープする時間は現象に関連していますか?
長ければ長いほど発生頻度が上がるといった感じです
短いプログラムでは発生しないということではなさそうです
> リクエストは成功しているけれどもクライアントは応答待ちのまま、
> ということから考えると、サーバーからクライアントへのレスポン
> スの通信に時間がかかっているのですかね。
なるほど、サーバー側ではPostの通信がすべて正常に終わるところまでは
チェックしていないということですか?
そういうことなら可能性あるとおもいますが
ただその現象をどのように確認したらいいのか・・・
今端末側のネットワークの設定はたしかにプロキシを使用していますが
イントラネット上では使用しない設定にしています
(Webサーバーはイントラネット上にあります)
IISのログからも端末のIPアドレスが見えているのでプロキシは経由していないと
考えています
IISのログに送信・受信バイト、応答時間を追加し
下記のような連続でPostBackするプログラムでテストを行いました
Protected Sub ButtonStartEternal_Click(sender As Object, e As System.EventArgs) Handles ButtonStartEternal.Click
Dim Count As Decimal = 0
Decimal.TryParse(LabelCount.Text, Count)
Count += 1
LabelCount.Text = Count.ToString
Dim ResponseTime As Integer = 0
Integer.TryParse(TextBoxResponseTime.Text, ResponseTime)
If ResponseTime > 0 Then
System.Threading.Thread.Sleep(ResponseTime)
Page.ClientScript.RegisterStartupScript(Me.GetType, "StartEternal", _
"<script type=""text/javascript"">document.getElementById(""ButtonStartEternal"").click();</script>")
End If
End Sub
ResponseTimeを500mSec、10Sec、1min、5minと設定して約3時間動かしたところ
500mSec ×753回目で応答待ち状態
10Sec ○継続して応答
1min ×8回目で応答待ち状態
5min ○継続して応答
といった結果になりました
応答時間とは関係ないようです
またIISのログもすべて正常でした
(HttpStatusは200 0 0で応答時間もResponseTimeとほぼ一致)
はい、私がいいたかったことはそういうことだったのですが、調べてみ
たところ違う可能性が高いみたいです。すみません。IISのログにおける
200 0 0の3番目の0はsc-win32-statusですよね。sc-win32-statusは、レ
スポンスがクライアントに到達したときには0になるようです。レスポン
スがクライアントに到達していることはチェックされていると思われま
IISのログにsc-win32-statusとして64のメッセージ
http://social.technet.microsoft.com/Forums/ja/iis7ja/thread/c10ef91b-cb32-4134-849f-aba9193e6e5b
現象が発生する原因として私があと思いつくのは、セキュリティソフト
がブラウザに干渉していることくらいです。同じコンピュータかつ、他
のブラウザでは現象は発生しますか?
> 同じコンピュータかつ、他のブラウザでは現象は発生しますか?
Chromeでは問題は発生しませんでした
Chromeインストール後もIE8.0では再現しました
ちがうユーザー(新規)でログインしなおしたら再現しなくなりました
ユーザープロファイルに何か問題が残っていたのでしょうか
IEを初期化(詳細設定のリセットボタン)しても再現したのですが・・・
原因は不明ですが対処法はある程度わかったので解決にします
ありがとうございました
解決済み!