我们有一个使用SQL Server 2008 SP3 Express的.NET程序。程序和服务器都在同一台机器上。它是用最初打开的连接写的,然后保持打开状态。通常这可行。但有时程序会闲置几个小时,在此期间连接关闭,程序会在下一次SQL访问时发生爆炸。
数据库自动关闭参数已关闭。参数Pooling = False位于程序连接字符串中。在IIS中,对于每个应用程序池,已禁用回收,并且已将空闲超时设置为9000分钟。
到目前为止,在测试中,这种情况经常发生,但有时却没有。
答案 0 :(得分:0)
最简单的方法是检查连接状态并在必要时打开它:
if(conn.State == ConnectionState.Closed)//Can't quite remember the exact syntax
{
conn.Open();
}
//do DB stuff here.