我有一个以 .NET 4.0 数据库为中心的应用程序(厚客户端,WinForms)运行在数百个环境中(每个都由我们客户的 IT 维护)职员)。该应用程序是对我公司使用多年的旧 FoxPro 产品的重写。
该应用程序似乎对我们所有的客户都运行良好,但有一个客户出现间歇性异常,如下所示:
System.Data.SqlClient.SqlException (0x80131904):超时已过期。在操作完成之前超时时间已过或服务器没有响应。
由于批处理被中止,请求无法运行,这可能是由于客户端发送的中止信号引起的,或者同一会话中正在运行另一个请求,从而使会话繁忙。
我可以在网上找到的所有关于此的信息(例如这里和这里)都说这个问题是一个 SQL Server 2005 错误,已在 SP1 中解决。但是,该客户使用的是 SQL Server 2008 R2 Express(我们公司已经对此进行了验证;我们不只是相信客户的话)。此外,我们没有使用连接池或分布式事务,因此我发现的链接似乎更不相关。
同样,这些问题是间歇性的(每天几次),并且发生在所有不同的工作站上(似乎表明这不是单个客户端的问题)。旧版 FoxPro 应用程序仍然存在于他们的环境中并且工作正常(针对完全相同的数据库),这似乎表明它不仅仅是网络或数据库服务器问题。
任何帮助将不胜感激。