【发布时间】:2019-06-03 07:57:59
【问题描述】:
我的 Web 服务器的数据库连接工作正常,但是当我触发了写入繁重的 Windows 服务时,我会随机收到“在建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。错误 40 。”来自我的网络服务器。
我已尝试关闭我的 Web 服务器的连接池,因为它们与 Windows 服务共享相同的连接字符串,但我不知道是什么原因造成的。
我的 SqlConnection 对象也都包含在 using 语句中,因此它们正在被释放。
Dapper 目前正在用于查询扩展方法。
连接字符串示例:“Data Source=SERVER;initial catalog=DBNAME;user id=USERNAME;password=PASSWORD;Pooling=False;”
using (IDbConnection connection = new SqlConnection(_connectionString))
{
return connection.Query<TotalPosts>("analytics.TotalPosts_Sel", new { AccountId = accountId }, commandType: CommandType.StoredProcedure).FirstOrDefault();
}
【问题讨论】:
-
也许你不应该使用触发器你使用了多少触发器..?你有DBA吗?咨询dba并尝试调试SQL ..你怎么确定这是一个sql问题这可能是一个网络问题吗??
-
我目前没有使用任何触发器。我认为这可能是一个网络问题,但它只发生在另一台机器上的这个 Windows 服务运行时。可惜我没有DBA。我托管在 AWS 上。
-
你如何通过不同的机器建立连接..?这些机器是否使用与您在正在工作的机器上使用的相同的 Sql.DataClient..?连接字符串是什么样的.. 连接是通过链接服务器完成的..?听起来也可能是超时问题,如果不知道您在做什么或如何做到这一点,很难确定这里发生了什么......
-
重置连接时会发生这种情况。您多久关闭和打开一次数据库连接?你是否长时间使用同一个数据库连接对象?
-
我可能在运行 SQL Profiler 并看到 1 个查询急需索引后解决了这个问题。我已添加它们并将继续监视我的服务器。
标签: c# sql-server ado.net