0

SQL Server 2008 SP3 Express を使用する .NET プログラムがあります。プログラムとサーバーの両方が同じマシン上にあります。最初に開かれ、その後も開いたままになる接続で記述されています。通常、これで問題なく動作します。しかし、プログラムが何時間もアイドル状態のままになることがあります。その間、接続は閉じられ、プログラムは次の SQL アクセスを爆撃します。

データベースの Auto Close パラメータがオフになっています。パラメータ Pooling=False は、プログラム接続文字列にあります。IIS では、アプリケーション プールごとにリサイクルが無効にされ、アイドル タイムアウトが 9000 分に設定されています。

これまでのテストでは、これはほとんどの場合機能しますが、機能しない場合もあります。

4

1 に答える 1

0

最も簡単な方法は、接続状態を確認し、必要に応じて開くことです。

if(conn.State == ConnectionState.Closed)//Can't quite remember the exact syntax
{
    conn.Open();
}
//do DB stuff here.
于 2013-07-28T11:39:32.217 に答える