我已连接到远程SQL Server实例
这些查询工作正常:
SELECT COUNT(*) FROM Provider
SELECT TOP 1 * FROM Provider
但这些不是
SELECT * FROM Provider
SELECT TOP 2 * FROM Provider
并在长时间延迟后返回此错误:
Msg 64,Level 20,State 0,Line 0
从接收结果时发生传输级错误 服务器。 (提供程序:TCP提供程序,错误:0 - 指定的网络名称 已不再可用。)
我应该看哪种配置允许单行结果而不是多行结果?
答案 0 :(得分:0)
我发现了以下内容 嘿伙伴,另一件事我试着找到以下内容,并为您提供了URL。考虑到第一点故障排除并不适合你
<强>症状强> 错误的堆栈跟踪类似于以下内容:
A transport-level error has occurred when receiving results from the server. (provider: TCP Provider, error: 0 - The specified network name is no longer available.)
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
at System.Data.SqlClient.TdsParserStateObject.ReadSniError(TdsParserStateObject stateObj, UInt32 error)
at System.Data.SqlClient.TdsParserStateObject.ReadSni(DbAsyncResult asyncResult, TdsParserStateObject stateObj)
at System.Data.SqlClient.TdsParserStateObject.ReadPacket(Int32 bytesExpected)
at System.Data.SqlClient.TdsParserStateObject.ReadBuffer()
at System.Data.SqlClient.TdsParserStateObject.ReadByte()
<强>原因强> 该错误是由长时间运行的查询的超时异常引起的。在以前版本的Visual Studio .NET中,异常被正确表示为具有超时描述的异常。
解决强> 将命令对象的commandtimeout属性设置为适当的值。使用零值等待而不抛出异常。