1

C# サービスがあります。メモリとCPUの豚です。それは一晩中実行され、データベース内のデータを移動します。午前 7 時ごろ、イベント ビューアに繰り返し投稿されます。

ServName サービスからのトランザクション応答を待機するタイムアウト (30000 ミリ秒)。

すると不意に止まる。このメッセージが何を意味するか、またはそれを診断する方法について、誰かが意見を持っていますか?

更新 1

DB トランザクションはタイムアウトしていません。サービス管理コンソールは、サービスを制御しようとしているというこのメッセージをログに記録しています。

更新 2

ここでの問題は、データベース アクセスとは関係ありません。サービスを制御しようとしているときにエラーをスローするのは、サービス管理コンソールです。

4

4 に答える 4

1

これは、サービスのメインスレッドが30秒以内にコントロールを返さない場合に発生します。ただし、タスクマネージャーを確認すると、サービスexeは引き続きバックグラウンドで実行されます。

解決策は、サービスの主な機能がタイムアウト期間内に戻るようにすることです。

-スリヤ

于 2011-03-21T12:54:11.220 に答える
0

トランザクションは 30 秒以上続くと思います。

次のようなトランザクションを送信してみてください。

(transactionscope...) を使用して何かを挿入します。スリープ 30 秒、さらに何かを挿入します。

同じ結果が得られるはずです。その場合は、トランザクション タイムアウトの最適化または構成を試みてください。

お役に立てれば

よろしく。

于 2009-08-26T14:46:11.413 に答える
0

同じ問題がありました。これはデータベースとは何の関係もありません。Windows Server 2008 または Vista を実行していて、アプリが何らかの形でマルチスレッド化されていると仮定します。

これを試して:

http://support.microsoft.com/kb/972596/

于 2009-11-03T05:00:11.623 に答える
0

これは奇妙で根拠のない提案のように思えるかもしれませんが、データベースのトランザクション ログ スペースが不足していますか?

于 2009-08-26T15:02:56.410 に答える