Sql server 错误17886-服务器将断开连接
我们正在使用sql server 2008 x64 r2在vps服务器上运行一个网站。我们正受到Sql server 错误17886-服务器将断开连接,sql-server,sql-server-2008,windows-server-2008-r2,Sql Server,Sql Server 2008,Windows Server 2008 R2,我们正在使用sql server 2008 x64 r2在vps服务器上运行一个网站。我们正受到17886错误的轰炸,即: 服务器将断开连接,因为客户端驱动程序 会话处于单用户模式时发送了多个请求。这 客户端发送重置连接请求时出错 当会话中仍有批处理在运行时,或当 会话重置连接时,客户端发送请求。 请联系客户驱动程序供应商 这会导致sql语句返回损坏的结果。我已经尝试了在网上找到的几乎所有建议,包括: 有火星,也没有 有联营和无联营 带async=true,不带 我们只有一个数据库,它绝对是
17886
错误的轰炸,即:
服务器将断开连接,因为客户端驱动程序
会话处于单用户模式时发送了多个请求。这
客户端发送重置连接请求时出错
当会话中仍有批处理在运行时,或当
会话重置连接时,客户端发送请求。
请联系客户驱动程序供应商
这会导致sql语句返回损坏的结果。我已经尝试了在网上找到的几乎所有建议,包括:
- 有火星,也没有
- 有联营和无联营
- 带async=true,不带
高cpu
相关(但并非仅根据我所看到的监视器)。也与搜索引擎的高请求率相关。然而,高cpu/请求不应该导致sql连接重置-最坏情况下,我们应该有高响应时间或iis拒绝发送响应
有什么建议吗?我只是一名开发人员而不是dba—我是否需要dba来解决此问题?不确定,但您的一些查询可能会导致服务器死锁 在您再次检测到此错误时
- 打开Management Studio(在服务器上,必要时安装)
- 打开一个新的查询窗口
- 运行sp_who2
- 检查blkby列,该列是阻塞的的缩写。如果该列中有任何数据,则会出现死锁问题(通常情况下,它应该与我附带的屏幕截图类似,完全为空)
要修复上述错误,需要将“MultipleActiveResultSets=True”添加到连接字符串中
通过我将创建一个事件日志任务,每当抛出17886时,我都会给您发送电子邮件。然后立即转到数据库并执行sp_who2,获取blkby spid并运行dbcc inputbuffer。希望eventinfo会给你一些更具体的东西 sp_who2 DBCC输入缓冲区(62) 在DI实例化代码中使用“每个请求一个实例”策略,您的问题就会得到解决 很可能您正在使用依赖项注入。在web开发过程中,您必须考虑并发请求的可能性。因此,您必须确保每个请求在DI期间都获得新实例,否则您将陷入并发问题。不要对服务和上下文使用“.SingleInstance”来降低成本
启用MARS可能会减少错误的数量,但遇到的错误将不太清楚。启用MARS从来都不是解决方案,除非您知道自己在做什么,否则不要使用它。在出现错误时很难捕获服务器。我是否需要在出错的同时捕获这些数据?如果是这样,我不确定下一个机会之窗何时到来。一次有几天没有错误,然后突然有数百个错误。同时还有其他解决方案可供尝试吗?请查看以下目录中的文件:“C:\Program files\Microsoft SQL Server\[YourSQLInstanceName]\MSSQL\Log”,并查看事件日志。尝试查找更多信息,如果您认为找到了有用的内容,请将其添加到问题中我在上面发布的消息(“服务器将断开连接…”)是我在sql错误日志中看到的错误,有数百个主题。您可以从访问网站数据库的位置粘贴一段代码吗?您是为每个查询创建连接还是在多个请求之间共享连接?