2

新しいASP.Net4.0Webformアプリケーションがあります。Entity Framework 4.0を使用して記述されており、データアクセスの約90%にEntityDataSourceを使用しています(主にListViewおよびDropDownListコントロールにバインドされています)。

ユーザーは、偶発的なIEの「フリーズ」を報告しています。発生しているように見えるのは、ポストバック中に、IEが完全に白くなり、ページがレンダリングされないことです。ユーザーはIEを閉じてバックアップを開始でき、アプリケーションは常に正常です。

リソースの問題が発生しているようです。サーバーRAM、SQL RAM、SQLデータベース接続など。これが発生した場合(および1日に1〜3回発生するようです)、クライアントPCまたはサーバーのイベントログには何もありません(今日のエラーを除く!)。ランダムユーザーへ)。

今日、私はユーザーにそれを待ってもらい、以下のエラーを受け取りました(そしてそれはイベントログにもありました)。これが他の人が受けているエラーなのか、それとも無関係のエラーなのかはわかりません。問題は、私が現場にいないことです。サーバーにアクセスできるのは夜間のみで、前述のように、イベントログには何もありません。SpotlightをSQL(以前に使用したことがあるのでとてもいいです)または他のSQL監視ツールにインストールすることを考えました。まず、スタックオーバーフローに関する専門家からのアドバイスを見ると思いますが。

何かアドバイス?(EntityDataSourceを使用しない以外は!笑)

そうそう...ここに私が上で述べたそのエラーがあります:

'/'アプリケーションのサーバーエラー。

タイムアウトが期限切れになりました。操作が完了する前にタイムアウト期間が経過したか、サーバーが応答していません。

説明:現在のWebリクエストの実行中に未処理の例外が発生しました。エラーとそれがコードのどこで発生したかについての詳細は、スタックトレースを確認してください。

例外の詳細:System.Data.SqlClient.SqlException:タイムアウトが期限切れになりました。操作が完了する前にタイムアウト期間が経過したか、サーバーが応答していません。

ソースエラー:

現在のWebリクエストの実行中に、未処理の例外が生成されました。例外の発生源と場所に関する情報は、以下の例外スタックトレースを使用して識別できます。

スタックトレース:

[SqlException(0x80131904):タイムアウトが期限切れになりました。操作が完了する前にタイムアウト期間が経過したか、サーバーが応答していません。]

System.Data.SqlClient.SqlConnection.OnError(SqlException例外、ブール値breakConnection)+404

System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()+412

System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior、SqlCommand cmdHandler、SqlDataReader dataStream、BulkCopySimpleResultSet BulkCopyHandler、TdsParserStateObject stateObj)+1363

System.Data.SqlClient.SqlDataReader.ConsumeMetaData()+58

System.Data.SqlClient.SqlDataReader.get_MetaData()+118

System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds、RunBehavior runBehavior、String resetOptionsString)+6312385

System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior、RunBehavior runBehavior、Boolean returnStream、Boolean async)+6313986

System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior、RunBehavior runBehavior、Boolean returnStream、String method、DbAsyncResult result)+538

System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior、RunBehavior runBehavior、Boolean returnStream、Stringメソッド)+28

System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehaviorの動作、文字列メソッド)+256

System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehaviorの動作)+19

System.Data.EntityClient.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand entityCommand、CommandBehavior Behavior)+617

[EntityCommandExecutionException:コマンド定義の実行中にエラーが発生しました。詳細については、内部例外を参照してください。]

System.Web.UI.WebControls.EntityDataSourceView.ExecuteSelect(DataSourceSelectArguments引数)+1599

System.Web.UI.DataSourceView.Select(DataSourceSelectArguments引数、DataSourceViewSelectCallbackコールバック)+28

System.Web.UI.WebControls.DataBoundControl.PerformSelect()+274

System.Web.UI.WebControls.ListView.PerformSelect()+124

System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound()+105

System.Web.UI.WebControls.ListView.CreateChildControls()+78

System.Web.UI.Control.EnsureChildControls()+182

System.Web.UI.Control.PreRenderRecursiveInternal()+60

System.Web.UI.Control.PreRenderRecursiveInternal()+222

System.Web.UI.Control.PreRenderRecursiveInternal()+222

System.Web.UI.Control.PreRenderRecursiveInternal()+222

System.Web.UI.Control.PreRenderRecursiveInternal()+222

System.Web.UI.Control.PreRenderRecursiveInternal()+222

System.Web.UI.Control.PreRenderRecursiveInternal()+222

System.Web.UI.Control.PreRenderRecursiveInternal()+222

System.Web.UI.Control.PreRenderRecursiveInternal()+222

System.Web.UI.Control.PreRenderRecursiveInternal()+222

System.Web.UI.Page.ProcessRequestMain(ブール値includeStagesBeforeAsyncPoint、ブール値includeStagesAfterAsyncPoint)+4185

バージョン情報:Microsoft .NET Frameworkバージョン:4.0.30319; ASP.NETバージョン:4.0.30319.1

4

1 に答える 1

0

私の提案:

  • これがランダムページまたは具体的なページで発生するかどうかを確認します
  • これが発生したときにWebアプリケーションにアクセスしているユーザーの数を調べてみてください(パフォーマンスカウンター)
  • SQLサーバーの監視-パフォーマンス、読み取り、他のユーザーの読み取りをブロックする可能性のある長時間実行トランザクションのチェック
  • 開発開発で、EntityDataSourceが返すレコードの数を確認します(特にビルドインページングを使用している場合)。
于 2011-02-22T08:59:16.560 に答える