什么“当前命令发生了严重错误。结果,如果有的话,应该被丢弃。” SQL Azure错误意味着什么?

时间:2013-02-11 08:47:22

标签: .net sql-server-2008 azure azure-sql-database

偶尔遇到我的代码

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中的错误触发的,并且可以重现。

我有两个选择 - 重试查询或将其视为致命并努力解决。我更愿意更好地理解问题究竟是什么,以及我是否可以安全地重试查询。

发生此错误时是否重试查询?

2 个答案:

答案 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();