2011-07-29 10 views
0

私は、ユーザーがアプリのためのテーブルにテキストの非常に大きな塊を投稿することができた瞬間、で構築していたWebアプリケーションの問題を抱えています。大きな柱と挿入/更新SQL Serverのタイムアウト

ELMAHを使用していますが、今のところ問題がありますが、CONTENT_LENGTHは595759ですが、挿入が成功し、承認のために投稿した内容がマークされます。

ことができます場合は、それはすべてのLINQを使用して行われます。

ユーザーが(単にそれらが以前のデータを掲載し、承認されたとしてマークを編集することを可能にする)私のアプリケーションで承認ボタンをクリックすると、私は以下のエラーを取得:

System.Exception: An error occured publishing a page: Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding. The statement has been terminated.

私は少しでよそれがなぜインサートでは機能するのか、どのようにアップデートではないのかについて、誰もこれについてどんな光を出そうとすることができますか?

ご協力いただきありがとうございます。

+0

投稿500キロバイトはタイムアウトべきではありません。それは再現可能ですか? SQLプロファイラを使用してタイムアウトを取得できるかどうかを確認してください。 – Andomar

答えて

0

データベースのタイムアウトであることを確認したい場合は、データベースにアクセスできますあなたはActivity Monitor、またはselect * from sys.dm_os_waiting_tasksを表示し、何のブロッキングが起こっているかを確認できます。ロックにブロックがある場合は、アクティビティモニタにロックを見ることができますかexec sp_lockselect * from sys.dm_tran_locks.

0

あなたのアプリケーションはasp.netで書かれていると思いますか?これは、SQL Serverのタイムアウトではなく、asp.netのタイムアウト例外である可能性があります。

このリンクを参照してくださいhttp://weblogs.asp.net/aghausman/archive/2009/02/20/prevent-request-timeout-in-asp-net.aspx

また

はここに詳細を参照してください(あなたがそれを使用している場合)、SQLコマンドオブジェクトのコマンドタイムアウトプロパティを大きくしてみてください:

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.commandtimeout.aspx

関連する問題