.net 断断续续;“批处理已中止”;例外情况

.net 断断续续;“批处理已中止”;例外情况,.net,sql-server,exception,.net,Sql Server,Exception,我有一个以.NET 4.0数据库为中心的应用程序(厚客户端,WinForms)运行在SQL Server上(主要是通过Linq到SQL,并加入一些普通的ADO.NET),该应用程序部署在数百个环境中(每个环境都由客户的IT人员维护)。 该应用程序是对我公司使用多年的遗留FoxPro产品的重写 该应用程序似乎对我们的所有客户都运行良好,但有一个客户除外,该客户存在间歇性异常,如: System.Data.SqlClient.SqlException(0x80131904):超时已过期。操作完成前已

我有一个以.NET 4.0数据库为中心的应用程序(厚客户端,WinForms)运行在SQL Server上(主要是通过Linq到SQL,并加入一些普通的ADO.NET),该应用程序部署在数百个环境中(每个环境都由客户的IT人员维护)。 该应用程序是对我公司使用多年的遗留FoxPro产品的重写

该应用程序似乎对我们的所有客户都运行良好,但有一个客户除外,该客户存在间歇性异常,如:

System.Data.SqlClient.SqlException(0x80131904):超时已过期。操作完成前已过超时时间,或者服务器没有响应

由于批处理被中止,请求无法运行。这可能是由于从客户端发送的中止信号,或者另一个请求正在同一会话中运行,从而使会话繁忙

我在网上能找到的关于这个问题的所有信息(比如和)都说这个问题是在SP1中解决的SQLServer2005错误。但是,该客户使用的是SQL Server 2008 R2 Express(我们公司已经对此进行了验证;我们不仅仅是相信客户的话)。此外,我们没有使用连接池或分布式事务,因此我发现的链接似乎更不相关

同样,这些问题是间歇性的(每天几次),并且发生在他们所有的工作站上(似乎表明这不是单个客户端的问题)。遗留的FoxPro应用程序仍然存在于他们的环境中,并且运行良好(针对完全相同的数据库),这似乎表明它不仅仅是一个网络或数据库服务器问题


任何帮助都将不胜感激。

这些错误表示在服务器返回结果之前已达到(默认值为30秒)。这并不表示有任何错误,也没有SP可以解决它。这是一个性能问题(很可能缺少索引),必须作为性能问题进行调查。尝试跟随SQLCAT。

死锁?也许有助于确定。但为什么会出现糟糕的异常消息呢?为什么没有其他客户报告相同的问题呢?您是在询问为您带来
错误\u成功的人员提供的诊断信息的质量?您可以找到一些超时故障排除提示。不确定“批处理中止”部分。存在正确和彻底的索引。对于数百个其他安装来说,性能不是问题。有些失败的查询相当简单。此安装可能存在一些特定的性能问题,但我们预计遗留应用程序也会出现问题。我知道异常的第一部分提到了超时,我们在过去解决了大量与超时相关的异常,其中性能是一个问题。我相信这是不同的。请参阅异常消息的后一部分。是什么原因导致的?后一部分解释了是什么原因导致的:
从客户端发送的中止信号
。在过去,当我们遇到超时异常时,消息的后一部分不存在,只有前一部分。我仍然认为消息的附加部分是这里的关键因素,但我将从性能的角度进行调查(无论如何,我并没有其他选择)。谢谢你的快速回复。