DB接続のステータスをページに表示する方法を誰かが知っているかどうか疑問に思っています。
接続が良好かどうか、または接続がダウンしているかどうかを知りたいのですが。この場合、理由も表示します。
DB接続のステータスをページに表示する方法を誰かが知っているかどうか疑問に思っています。
接続が良好かどうか、または接続がダウンしているかどうかを知りたいのですが。この場合、理由も表示します。
asp.netでデータベースを操作している間は、接続が常に開いている必要はありません。このことを念頭に置いて、データベースの接続ステータスを常に表示する必要はありません(表示すべきではありません)。あなたがすべきことは、ado.netまたは別のOR / Mでクエリを実行しているときに、SqlExceptionをキャプチャして、ユーザーに意味のあるエラーを提供することです。
msdnの記事から:
try {
// code here
}
catch (SqlException odbcEx) {
// Handle more specific SqlException exception here.
}
catch (Exception ex) {
// Handle generic ones here.
}
データベース例外をキャプチャするだけです。接続がない場合、例外/エラーが発生します。
つながりがあれば分かるだろう
理想的には、データベースについてユーザーに伝えることは、実際には良い習慣ではありません。データベース エラーはすべてログに記録し、よりユーザー フレンドリなエラー メッセージに置き換える必要があります。
それでも接続状態を画面に表示する必要がある場合は、SQLConnection の StateChange イベントを処理して、適切なメッセージを表示できます。
更新: エラーをログに記録し、エラーが発生した場合にメールを送信するプログラムを用意するか、ユーザーがデータベースがダウンしていると報告するのではなく、手動でシステムを調べることをお勧めします。
接続ステータスを確認するには、さまざまな方法があります。ASP.Net タイマーを使用して定期的に接続を確認できます (タイマー間隔ごとにサーバーへのポストバックが発生し、ネットワーク トラフィックが発生することに注意してください)。「ウォークスルー: ASP の使用」を参照してください。複数の UpdatePanel コントロールを持つ NET タイマー コントロール
イベントではTimer_Tick
、接続を確認して、ラベルにメッセージを投稿できます。次の行に何か...
protected void Timer1_Tick(object sender, EventArgs e)
{
try
{
using (SqlConnection sqlConn =
new SqlConnection("YourConnectionString"))
{
sqlConn.Open();
Label1.Text = "Database Available";
}
}
catch (Exception ex)
{
Label1.Text = "Database Un-Available, " + "Possible Reason:"+ ex.Message;
}
}
一般的な例外 ( Exception
) をキャッチすることはお勧めできません。SQLException をキャッチしてから、一般的な例外を処理する別のブロックを用意することができます。