2

新しい C# プロジェクトで作業していて、助けが必要です。

システムには、Quartz API を使用してスケジュールされたジョブがいくつかあり、そのうちの 1 つが機能しなくなりました。

メソッドを手動で実行しようとすると、このエラーが発生しました

「タイムアウトが発生しました。操作が完了する前にタイムアウト期間が経過したか、サーバーが応答していません。」

この行で (catch{} が呼び出されます):

TList<TbBooking> allBooks = DataRepository.TbBookingProvider.Find(bQuery);

変数 bQuery には、4200 の ID を持つクエリと、1 か月の期間、フラグなどのいくつかのパラメーターがあります。

SQL タイムアウト設定を確認したところ、10 分 (デフォルト) ですが、コードが .Find() メソッドに入力されてから数秒 (2 分未満) でメッセージが表示されますが、SQLMS を使用すると、クエリはかなり迅速に実行されます。

コマンドsp_updatestatsを実行することを考えていますが、最初にあなたの提案を見たいです。

ps プロジェクトは codesmith を使用しており、この機能は 2010 年から機能していました。

4

1 に答える 1

0

sp_updatestats を使用しましたが、機能しませんでした。列のインデックスを作成しましたが、うまくいきませんでした。そのため、30 秒に設定された defaultCommandTimeout という名前の ProviderBase クラスのプロパティを見つけました。app.config ファイルで 120 に変更すると、クエリが再び機能しました。

于 2013-12-12T13:29:41.820 に答える