3

レガシ アプリ (VB) が 1 つあり、SQL Server への接続中に (おそらく OLEDB を介して) タイムアウト エラーが発生します。

ここに画像の説明を入力

SQL Profiler を使用すると、接続がちょうど 30 秒で切断されることがわかりました。

ここに画像の説明を入力

ソース コードにはアクセスできませんが、exe リソースをスキャンしたところ、ハードコーディングされた接続文字列のタイムアウト値が見つかりませんでした。

私が思う最後のチャンスは、デフォルトの OLEDB タイムアウトをアプリの外のどこかで変更することです。

私の質問は: デフォルトの OLEDB タイムアウト値を変更することは可能ですか?


アップデート

接続文字列を見つけてタイムアウトを 300 に変更しましたが、役に立ちません...

Provider=SQLOLEDB.1;Persist Security Info=False;User ID=______;Password=______;Initial Catalog=________;Data Source=______;Connect Timeout=300

その後、現在の接続文字列を別のプロバイダー ( ADO.NETODBC ) からの接続文字列に置き換えようとしましたが、30 秒後にタイムアウト エラーが発生するたびに - チェックメイト。

PS

アドバイスをいただければ幸いです

4

3 に答える 3

2

接続タイムアウトは、コマンドを実行するのではなく、サーバーに接続する時間の制限であるため、設定してもまったく役に立ちません

于 2013-10-30T15:43:29.233 に答える
1

「接続タイムアウト」というプロパティがあります。このプロパティを、アプリケーションで使用可能な接続文字列に追加できます。

以下は、ユーザーがタイムアウト値を指定した接続文字列の例です: (注: 接続タイムアウト値は常に秒単位です)

connectionString="Data Source=ServerName;Initial Catalog=DatabaseName;User ID=sa;Password=tiger;Connect Timeout=200"

于 2013-07-25T12:00:53.687 に答える
1

ここで答えを見つけました。commandこれはコマンド タイムアウトであり、特定のオブジェクトから設定する必要があります。

于 2013-07-29T06:02:50.067 に答える