偶尔遇到我的代码
System.Data.SqlClient.SqlException
The service has encountered an error processing your request. Please try again.
Error code 40540. A severe error occurred on the current command.
The results, if any, should be discarded.
Class 20
Number 40197
很少发生,通常会在一两分钟内消失,我无法可靠地重现它。有时Error code
可以是40540
以外的数字。
我用Google搜索了一下,看起来它通常是由SQL Server中的错误触发的,并且可以重现。
我有两个选择 - 重试查询或将其视为致命并努力解决。我更愿意更好地理解问题究竟是什么,以及我是否可以安全地重试查询。
发生此错误时是否重试查询?
答案 0 :(得分:6)
快速谷歌搜索给了我这个。
该服务在处理您的请求时遇到错误。请再试一次。错误代码%d。当服务因软件或硬件升级,硬件故障或任何其他故障转移问题而关闭时,您将收到此错误。重新连接到SQL数据库服务器将自动将您连接到数据库的正常副本。您可能会在错误40540的消息中看到错误代码40143和40166.错误代码40143和40166提供有关发生的故障转移类型的其他信息。不要修改您的应用程序以捕获错误代码40143和40166.您的应用程序应捕获40540并尝试重新连接到SQL数据库,直到资源可用并再次建立连接。
您可以访问here了解详情。它说你的应用程序应该捕获40540并尝试重新连接到SQL数据库,直到资源可用并再次建立连接。
虽然从个人角度来说,我建议不要使用Sql azure,因为它很容易限制,你无法控制分配给你的资源。我所做的是在azure vm上安装sql server并在我的应用程序中使用它。
希望这会对你有所帮助。
答案 1 :(得分:1)
我遇到了类似的错误:我按照http://social.msdn.microsoft.com/Forums/en-US/bbe589f8-e0eb-402e-b374-dbc74a089afc/severe-error-in-current-command-during-datareaderread中的答案解决了问题..
避免使用looping
读者;在DataTable
DataTable table = new DataTable();
table.Load(reader);
reader.Close();