0

私はC#TCPサービスをプログラミングしています。このサービスでは、クライアントはTCPサーバーに接続して、データを取得または書き込みます。

問題:

午前中にデータベースサーバーを再起動すると、サービスはデータベースへの接続を失います。次のリクエストがシステムに届くと、データベース接続はなくなります。

誰かが私に何ができるか知っていますか?

再起動後にデータベースサーバーを保持または再接続するにはどうすればよいですか?

4

1 に答える 1

2

あなたの場合、すべてのサービスの有効期間中、SQL データベースへの SqlConnection を開いたままにしない方がよいと思います。

代わりに、SqlConnection オブジェクトをインスタンス化して開き、クエリを処理してから閉じます。これにより、SQL サーバーの内部接続プールメカニズムが使用されます。

たとえば、接続を開いて閉じるコードのブロックで各クエリを囲むことができます。

using(var cn = new SqlConnection(csString))
{
    cn.Open();

    ... // your query

    cn.Close();
}

このようにして、データベースが毎晩再起動すると、透過的になります。

于 2013-02-25T13:45:30.953 に答える