我正在编写 C# TCP 服务。在此服务中,客户端连接到我们的 TCP 服务器以获取或写入一些数据。
问题:
早上,我们重新启动数据库服务器,服务失去与数据库的连接。当下一个请求进入我们的系统时,不再有数据库连接。
有人知道我能做什么吗?
重启后如何保持或重新连接到数据库服务器?
我正在编写 C# TCP 服务。在此服务中,客户端连接到我们的 TCP 服务器以获取或写入一些数据。
问题:
早上,我们重新启动数据库服务器,服务失去与数据库的连接。当下一个请求进入我们的系统时,不再有数据库连接。
有人知道我能做什么吗?
重启后如何保持或重新连接到数据库服务器?
在您的情况下,我认为最好不要在整个服务生命周期内维护与 sql 数据库的开放 SqlConnection 。
相反,实例化一个 SqlConnection 对象,打开它,处理您的查询,然后关闭它:它将使用 SQL Server 的内部连接池机制。
例如,您可以将每个查询包含在打开和关闭连接的代码块中:
using(var cn = new SqlConnection(csString))
{
cn.Open();
... // your query
cn.Close();
}
通过这种方式,当数据库每晚重新启动时,它将对您透明。