日期:2014-05-17  浏览次数:20717 次

在从服务器接收结果时发生传输级错误。 (provider: TCP Provider, error: 0 - 指定的网络名不再可用。)
是远程访问,程序运行一段时间后就出现这个错误,请大家帮忙分析,谢谢。问题得到解决仅有的100分都给你们。
信息:SqlException
在从服务器接收结果时发生传输级错误。 (provider: TCP Provider, error: 0 - 指定的网络名不再可用。)
   在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
   在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
   在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
   在 System.Data.SqlClient.TdsParserStateObject.ReadSniError(TdsParserStateObject stateObj, UInt32 error)
   在 System.Data.SqlClient.TdsParserStateObject.ReadSni(DbAsyncResult asyncResult, TdsParserStateObject stateObj)
   在 System.Data.SqlClient.TdsParserStateObject.ReadNetworkPacket()
   在 System.Data.SqlClient.TdsParserStateObject.ReadBuffer()
   在 System.Data.SqlClient.TdsParserStateObject.ReadByte()
   在 System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
   在 System.Data.SqlClient.SqlDataReader.ConsumeMetaData()
   在 System.Data.SqlClient.SqlDataReader.get_MetaData()
   在 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
   在 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
   在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
   在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
   在 System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
   在 System.Data.SqlClient.SqlCommand.ExecuteReader()
   在 CloudLocationCSharp.CRDBOperator.selectCentIDCard()
   在 CloudLocationCSharp.CLEntry.getCentId()
   在 CloudLocationCSharp.CLEntry..ctor()
   在 CorrespondObject.MessInfo.getFromDB() 位置 C:\code\GPRSBridgingSys\CorrespondObject\MessInfo.cs:行号 97
.Net SqlClient Data Provider
------解决方案--------------------

分析其主要原因是“连接断开”,以下列出几种相关原因案例:

1、网络未连接,或者在连接的时候断网;

2、连接实例的时候sqlserver突然断了,比如你在使用的时候sqlserver服务不正常关闭等。

3、数据库有异常,比如数据库处于“警告”等的状态,或者数据库处于受限访问状态。也会无法访问,这种情况比较常见。
------解决方案--------------------
在没有深入研究你这个问题之前,先说说我常见的问题,上次搞镜像(sqlserver高可用之一),报错就类似这个,问了一下网管,由于是金融系统,需要符合PCI认证要求,所以网络做了一定程度的限制,最后我把hosts文件改了一下就可以用了。按照你的情景,应该是程序认不到你的sqlserver服务所在的机器名或者sqlserver实例名