Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SQL异常:发生传输级别错误_C#_Sql_Sqlexception - Fatal编程技术网

C# SQL异常:发生传输级别错误

C# SQL异常:发生传输级别错误,c#,sql,sqlexception,C#,Sql,Sqlexception,我们正在开发一个基于网络的多用户应用程序。有些客户端运行在同一个数据库上(平均4-5台电脑使用同一个数据库)。我们最近只在一台机器上遇到重复出现的异常,并显示以下消息: 执行命令定义时出错。有关详细信息,请参见内部异常。 从服务器接收结果时发生传输级别错误。(提供程序:会话提供程序,错误:0-数据无效。) System.Data.EntityCommandExecutionException:执行命令定义时出错。有关详细信息,请参见内部异常。-->System.Data.SqlClient.Sq

我们正在开发一个基于网络的多用户应用程序。有些客户端运行在同一个数据库上(平均4-5台电脑使用同一个数据库)。我们最近只在一台机器上遇到重复出现的异常,并显示以下消息:

执行命令定义时出错。有关详细信息,请参见内部异常。 从服务器接收结果时发生传输级别错误。(提供程序:会话提供程序,错误:0-数据无效。)

System.Data.EntityCommandExecutionException:执行命令定义时出错。有关详细信息,请参见内部异常。-->System.Data.SqlClient.SqlException:从服务器接收结果时发生传输级别错误。(提供程序:会话提供程序,错误:0-数据无效。)
位于System.Data.SqlClient.SqlConnection.OneError(SqlException异常,布尔断开连接)
位于System.Data.SqlClient.SqlInternalConnection.OneError(SqlException异常,布尔断开连接)
位于System.Data.SqlClient.TdsParser.throweexception和warning()处
位于System.Data.SqlClient.TdsParserStateObject.ReadsInError(TdsParserStateObject stateObj,UInt32错误)
位于System.Data.SqlClient.TdsParserStateObject.ReadSni(dbasynchresult asynchresult,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.ConsumerMetadata()处
在System.Data.SqlClient.SqlDataReader.get_MetaData()处
位于System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds、RunBehavior、String ResetOptions String)
位于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方法、DbAsyncResult)
位于System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior、RunBehavior RunBehavior、Boolean returnStream、String方法)
位于System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior,String方法)
位于System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior)
位于System.Data.Common.DbCommand.ExecuteReader(CommandBehavior)
位于System.Data.EntityClient.EntityCommandDefinition.ExecuteStorommands(EntityCommand EntityCommand,CommandBehavior)
---内部异常堆栈跟踪的结束---
位于System.Data.EntityClient.EntityCommandDefinition.ExecuteStorommands(EntityCommand EntityCommand,CommandBehavior)
在System.Data.Objects.Internal.ObjectQueryExecutionPlan.Execute[TResultType](ObjectContext上下文,ObjectParameterCollection parameterValues)
位于System.Data.Objects.ObjectQuery1.GetResults(Nullable1 forMergeOption)
位于System.Data.Objects.ObjectQuery1.System.Collections.Generic.IEnumerable.GetEnumerator()处
位于System.Collections.Generic.List1..ctor(IEnumerable1集合)
at System.Linq.Enumerable.ToList[TSource](IEnumerable1源)
在c:\Path\To\Project\devicepository.cs中的Repositories.devicepository.DoSomething(IEnumerable1 detectedDevices)中:第66行
[…]

我认为这一定是这台特定机器(运行Windows7x64)上的问题,但我不知道原因是什么。所有其他客户端都运行100%稳定,在长时间运行中没有出现异常


什么会导致此特定错误(关于错误代码0-我发现了其他几个线程,但没有一个线程的会话提供程序的错误代码为0)?

其他客户端使用的是哪种操作系统?您的SQL客户机是最新的吗?此客户机是否工作过,即错误是否突然开始出现,或者是在安装应用程序后出现的。你还可以检查非工作客户端和工作客户端的域是否相同或不同吗?我们都使用系统管理员安装的操作系统。他告诉我,所有机器都以相同的方式配置,使用相同的更新。我们不需要安装SQL客户端,因为我们正在使用内置的.net SQL客户端。一些客户端是安装了开发工具(VS、SQL Server 2008 R2…)的开发计算机,但此特定计算机是“普通”PC,没有任何开发工具。所有计算机都在同一域中运行。应用程序从一开始就开始显示此错误,但该错误在30分钟-2小时后随机显示(奇怪的是,此特定方法每10秒触发一次)。请尝试使用Microsoft的一些实用程序检查数据库连接中的网络问题。你可以尝试使用其中一种工具。它是安全的,因为它是由微软提供的。在过去,我遇到过一个类似的问题,即从.net代码运行分布式事务。来自微软的一个实用程序帮助我确定一个特定的端口被防火墙阻止,这导致了故障。