【发布时间】:2011-03-29 10:32:11
【问题描述】:
我编写了一个 Windows 服务,它侦听来自第三方服务的数据,将其保存在内存中一小段时间,并定期将所有新数据刷新到数据库中。
每次我需要刷新数据并在之后再次关闭它时,我都会打开一个新连接。 (每 5 秒左右)
由于服务器似乎受到重创,我已对其进行了更改,因此在应用程序的生命周期中打开并重用了一个连接。
只是想知道这是不是一个坏主意?
我通常会在单个请求的生命周期内打开和关闭连接的网络工作。对于需要执行我所描述的操作的 Windows 服务的最佳实践是什么?
我打算像这样建立一个容错连接:
private SqlConnection _sqlConnection;
public SqlConnection SqlConnection
{
get
{
if (_sqlConnection == null || !_sqlConnection.State.Equals(ConnectionState.Open))
{
var conn = new SqlConnection(_connectionString);
conn.Open();
return conn;
}
return _sqlConnection;
}
}
因此,如果由于某种原因现有连接以某种方式关闭或出现故障,我们将获得一个新的打开的连接
这种糟糕的设计有什么原因吗?
【问题讨论】:
标签: c# .net windows-services connection connection-pooling