私のwinアプリでは、データベースサーバーに到達できない場合に情報(またはdbアイコン)を表示したいと考えています。しかし、30秒のタイムアウトを待ちたくありません。ユーザーは、オプション ダイアログでサーバー、ユーザー、pw を構成できます。では、サブソニックで db 接続が機能しているかどうかを非常に高速にチェックする方法はありますか?
1027 次
4 に答える
2
単純な ping ストアド プロシージャを作成し、次のように SQL コマンドで短いタイムアウトで実行できます。
SubSonic.StoredProcedure sp = SPs.PingStoredProcedure();
sp.CommandTimeout = 2;
sp.Execute();
于 2009-04-23T10:11:26.057 に答える
0
接続タイムアウトを低く設定できますか -例についてはこちらを参照してください。または、おそらくバックグラウンド スレッドで実行して、試行中であることをユーザーに知らせてください。
于 2009-04-23T09:35:08.220 に答える
0
現在のリビジョン (521) には、リポジトリ パターンで使用できる IsOnline() メソッドがあります。現在、常に true を返します (こちらを参照)...しかし、これが修正されると、短いタイムアウトで接続文字列を渡すオーバーロードされたメソッドを使用できます。
于 2009-04-23T18:11:43.253 に答える
0
プロトコルに関する情報を見つけて、TCP ソケットを使用して単純にエミュレートすることができます。つまり、Web サーバーに telnet で接続して HTTP コマンドを発行するようなものです。ただし、データベースの種類に適したコマンドを実行します。これを行うと、ドライバーに組み込まれているタイムアウトなどを回避できます。または、TCP を使用して IP:Port に接続し、誰かがリッスンしているかどうかを確認することもできます。サブソニックに関する限り、いいえ。
于 2009-04-23T08:59:29.553 に答える