1

C# 4.0 で記述されたコンソール アプリケーションがあります。実行に時間がかかりすぎる SQL ストアド プロシージャを実行すると、接続タイムアウトの例外がスローされます。

それを処理するために、最初に web.config ファイルの接続文字列で Timeout を 360 に設定しましたが、うまくいきませんでした。

それから私は試しました:

SQLCommand cmd = new SQLCommand();
 cmd.CommandTimeout = 360;

しかし、これも機能していません。

どんな助けでも大歓迎です。Entity Framework 4.0 でも同じことをしようとしましたが、同じ問題がありました。私が提供しているタイムアウト値は適用されていません!

<add name="ConnectionString" connectionString="SERVER=db.mydomain.com;DATABASE=DatabaseName;UID=userID;PWD=Password;Connect Timeout=360;Packet Size=8192;Pooling=True;Min Pool Size=1;Max Pool Size=1000;MultipleActiveResultSets=True" providerName="System.Data.SqlClient" />

例外:

Timeout expired: The timeout period elapsed prior to completion of the operation or the server is not responding.
4

2 に答える 2

4

コードで を設定しCommandTimeout = 0、構成ファイルから削除します。

手段を設定するTimeout = 0ことで、長時間の運用でもジョブを完了します。

于 2012-06-24T11:35:43.470 に答える
0

context connection=trueファイルに接続文字列がありますかWeb.config? MSDNによると:

コマンドがコンテキスト接続に対して実行される場合、CommandTimeout は効果がありません

于 2012-06-24T04:05:15.570 に答える