14

Client Disconnected メッセージが頻繁に表示されます。負荷分散は使用しません。単一の IIS サーバーのみです。これの原因と修正方法を知る必要があります。

例外情報は次のとおりです。

Type: System.Web.HttpException
Message: The client disconnected.

Exception Data: 

Source: System.Web

TargetSite: Void ThrowError(System.Exception, System.String, System.String, Boolean)

StackTrace: 
   at System.Web.UI.ViewStateException.ThrowError(Exception inner, String persistedState, String errorPageMessage, Boolean macValidationError)
   at System.Web.UI.ObjectStateFormatter.Deserialize(String inputString)
   at System.Web.UI.ObjectStateFormatter.System.Web.UI.IStateFormatter.Deserialize(String serializedState)
   at System.Web.UI.Util.DeserializeWithAssert(IStateFormatter formatter, String serializedState)
   at System.Web.UI.HiddenFieldPageStatePersister.Load()
   at System.Web.UI.Page.LoadPageStateFromPersistenceMedium()
   at System.Web.UI.Page.LoadAllState()
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
4

3 に答える 3

9

私たちもこの例外を受け取り、完全に再現可能な方法でそれを取得します。この例外は、ViewStateが「大きく」なり、前のリクエストが完了する前にユーザーがボタンをクリックした場合にスローされます...

ViewState私たちの場合、ポストバックが ajax を使用しているため、これは非常に簡単に発生します。そのため、サーバーへの送信中にブラウザが応答を停止することはありません。このコントロールをクリックすると、例外が何度も発生します。

于 2011-03-18T12:00:03.170 に答える
4

これは、エンドユーザーが応答を待たずに複数の部分的なポストバックをページで許可している場合にも発生します。つまり、行をクリックすると部分的なポストバックが実行され、その行の詳細が表示されるテーブルを想定します。ここで、ユーザーが1つの行で詳細を待たずに別の行をクリックすると、この例外が発生する可能性があります。

ASP.NET AJAXは、新しい非同期要求が行われると、すでに実行されている要求を破棄します。

ただし、理解されていないのは、IISがそのような放棄された要求がASP.NETに到達することを許可する理由です。

于 2011-11-15T15:30:17.420 に答える
1

ユーザーがブラウザーで STOP または RELOAD をクリックして、ページのポストバックを中止している可能性があります。あなたのアプリケーションには非常に負荷の高いページ (多数のビューステートなど) があり、ダイヤルアップなどの低速接続を使用しているユーザーはいますか?

于 2009-06-11T00:45:25.860 に答える