加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql-server – 更新Windows后出现SqlClient错误 – “传入的表格

发布时间:2020-12-12 06:33:17 所属栏目:MsSql教程 来源:网络整理
导读:自从将 Windows 10更新到1803后,我已经开始接收此错误,只要我运行一个EF查询,该查询连接一个带有标量参数的表值函数. Message: The incoming tabular data stream (TDS) remote procedure call (RPC) protocol stream is incorrect. Parameter 2 (“”): Data
自从将 Windows 10更新到1803后,我已经开始接收此错误,只要我运行一个EF查询,该查询连接一个带有标量参数的表值函数.

Message: The incoming tabular data stream (TDS) remote procedure call
(RPC) protocol stream is incorrect. Parameter 2 (“”): Data type 0x00
is unknown.

Stack Trace: at System.Data.SqlClient.SqlCommand.<>c.b__180_0(Task1
result) at
System.Threading.Tasks.ContinuationResultTaskFromResultTask`2.InnerInvoke()
at System.Threading.Tasks.Task.Execute() — End of stack trace from
previous location where exception was thrown — at
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task
task) at
System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition.d__c.MoveNext()

我在.NET 4.6框架项目中使用Entity Framework v6.2.我验证了相同的代码在使用Windows 10 1709的另一台计算机上执行没有问题.我将计算机更新到Windows 10 1803而没有其他更改,我开始收到上述错误.导致错误的代码:

var query = from fs in db.ViewWithInformation
            join e in db.GetEventsForPerson(personnelId) on fs.Event_Id equals e.Event_Id
            where !fs.Is_Deleted
            select fs;
return await query.ToArrayAsync();

如果我删除了针对db.GetEventsForPerson的连接,则运行查询.上面的EF查询生成的SQL在SSMS中运行良好.

编辑5/15/2018:我已经确认这是由.NET Framework 4.7.2特别引起的.我在Windows 10 1709计算机上手动安装了.NET 4.7.2,错误再次启动.

解决方法

我的名字是Peter Carlin,我在SQL Server团队工作.我首先要为此事件及其对.NET Framework 4.7.2用户的影响道歉.我接下来想要解释发生了什么以及微软如何更详细地修复它.

问题是由于SQL中的Always Encrypted功能的改进.这些改进扩展了可以在Always Encrypted中完成的操作集,但是它们尚未准备好供应用程序使用.这些改进涉及对SqlClient和SQL服务器端的更改.我们在.NET Framework 4.7.2中引入了一个错误,在某些情况下(与MARS相关),SqlClient错误地认为添加的功能正在使用中,并向SQL发送无效请求. SQL拒绝那些在此线程中看到错误消息的人.只有在连接到支持添加功能的SQL服务器时才会发生这种情况. SQL DB是第一个获得最新SQL更改的,最近部署了添加的功能.

我们的直接解决方法是确保SQL DB的行为就像它没有添加的功能一样,因此不会遇到4.7.2中的SqlClient端错误.这就是我们能够通过SQL DB端更改解决问题的原因.

我们正在以明智/安全的方式快速部署,验证和修复.此时,修复程序部署到我们生产能力的大约10%,预计在5月21日星期一之前完成.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读