更新 Windows 后 SqlClient 错误 - “传入表格数据流 (TDS) 远程过程调用 > (RPC) 协议流不正确”

2023-11-26

自从将 Windows 10 更新到 1803 以来,每当我运行连接接受标量参数的表值函数的 EF 查询时,我都会开始收到此错误。

消息:传入的表格数据流 (TDS) 远程过程调用 (RPC)协议流不正确。参数2(“”):数据类型0x00 未知。

堆栈跟踪:位于 System.Data.SqlClient.SqlCommand.c.b__180_0(Task1 结果)在 System.Threading.Tasks.ContinuationResultTaskFromResultTask`2.InnerInvoke() at System.Threading.Tasks.Task.Execute() --- 堆栈跟踪结束 之前抛出异常的位置 --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)在 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 中运行良好。

2018 年 5 月 15 日编辑:我已确认这是由 .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 Server 端的更改。我们在 .NET Framework 4.7.2 中引入了一个错误,使得在某些情况下(与 MARS 相关)SqlClient 错误地认为添加的功能正在使用并向 SQL 发送无效请求。 SQL 拒绝那些带有此线程中看到的错误消息的内容。仅当连接到也支持添加功能的 SQL 服务器时才会发生这种情况。 SQL DB 是第一个获取最新 SQL 更改的数据库,并且最近部署了添加的功能。

我们立即修复的是确保 SQL DB 的行为就像没有添加的功能一样,因此不会遇到 4.7.2 中的 SqlClient 端错误。这就是为什么我们能够通过 SQL 数据库端更改来解决该问题。

我们正在尽可能快速、安全地部署、验证和修复。目前,该修复已部署到我们大约 10% 的生产能力,预计在 5 月 21 日星期一之前完成。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

更新 Windows 后 SqlClient 错误 - “传入表格数据流 (TDS) 远程过程调用 > (RPC) 协议流不正确” 的相关文章

随机推荐

  • 异步foreach

    C 中有异步 foreach 的方法吗 其中 id s 将由该方法异步处理 而不是使用并行 ForEach This Gets all the ID s IEnumerable
  • 权限拒绝:需要 android.permission.READ_PHONE_STATE

    我正在尝试在 Android 应用程序中检测电话 但在接到电话时收到以下消息 08 23 15 16 04 685 Vodafone VFD 600 Warning 850 BroadcastQueue Permission Denial
  • 导入更多脚本会减慢 python 速度吗?

    只是想知道从其他脚本导入更多函数是否会减慢脚本的速度 一些背景 我有两个脚本 一个比另一个运行得快得多 一个在顶部有一个额外的导入语句 在底部有一个额外的函数 但它是中间的东西 这在运行较慢的脚本之间是相同的 有关您的案例的更多信息 导入
  • before_filter 与 devise

    我正在使用 Devise 的内置功能before filter authenticate user 如果用户未通过之前过滤器 尝试在注销时执行操作 我想在应用程序帮助程序中调用我自己的自定义方法 我可以如何以及在哪里执行此操作 我会在过滤器
  • 在 Chrome 扩展程序中重定向 URL

    访问给定 URL 时 如何在扩展程序中重定向 chrome 例如 当我访问http yahoo com 我希望它重定向到http google com NOTE 这个问题的前一个版本询问是否有任何 Google Chrome 扩展程序可以在
  • Git - 重复提交问题

    我不小心在我的存储库中创建了 未知 的提交 并决定尝试从here git filter branch commit filter if GIT COMMITTER NAME unknown then GIT COMMITTER NAME G
  • Delphi找不到System.dcu;默认路径设置应该是什么?

    每当我尝试编译某些内容时 都会出现此错误 F1027 未找到单元 System pas 或二进制等效项 dcu 安装组件后得到它 删除它 重新安装 RAD studio 但仍然一样 为了修复它 我需要库路径 and 浏览路径 请任何人发布你
  • F# 在实际处理 int64 时假设 int

    正在经历欧拉计划在尝试学习 F 时 我在编写解决方案时偶然发现了一个似乎是类型推断的问题问题3 这是我写的 let rec findLargestPrimeFactor p n if n 1 then p else if n p 0 the
  • 缓存 JNI 对象和线程安全(在 Android 中)

    我正在编写一个带有本机线程 pthreads 的 C 应用程序 我需要调用一些 Java 方法等 我不确定哪些 JNI 对象可以安全地缓存 即存储在我的 C 对象中以供以后使用 可能 可能由不同的线程 我确实知道 如果我的类的方法可以由不同
  • 多个DbContext、多个Database.SetInitializer

    我创建了两个 DbContext 一个用于应用程序配置 第二个用于日志记录 原因是 我想在日志记录数据库上设置最大大小 这样它就不会耗尽所有可用磁盘空间并阻止其他数据库工作 在我的 global asax cs 文件中 我有以下内容 pro
  • 即使我在 Firebase 控制台中更新了 sha1,在 Play 商店中发布 .apk 后,Firebase 电话身份验证也无法正常工作

    Firebase 电话身份验证在之后不起作用 apk即使我更新后也在Play商店发布sha1之后我在 firebase 控制台中生成了 google services json再次更新 a ndroid studio 项目中的 json 文
  • 如何在散点图中画线

    我不敢相信这是如此复杂 但我尝试并用谷歌搜索了一段时间 我只想用一些图形特征来分析我的散点图 首先 我想简单地添加一行 所以 我有几 4 个点 我想在其中添加一条线 就像这个图中一样 来源 http en wikipedia org wik
  • Chart.js 中折线图的背景颜色

    我想更改 Chart js 生成的折线图的背景颜色 似乎没有这个选项 并且文档也没有帮助 在互联网上进行了广泛的搜索 没有得到任何结果 这可能吗 我必须承认我对 HTML5 画布不太了解 所以我有点挣扎 使用 Chart js v2 1 您
  • BigDecimal Euler 的数字计算模拟 Math.exp(double a)

    有没有一种普遍接受的方法来获取 BigDecimal 中的欧拉数 我基本上想做 Math exp double a 并且我基本上想要相同的函数 但使用 BigDecimal 进行计算以防止其他计算的精度损失 我只想做 BigDecimal
  • Android - 屏幕方向重新加载活动

    我要重新问这个问题 因为有太多不好的信息 这真的令人沮丧 简而言之 当设备方向改变时 我不希望发生任何改变或发生 针对此问题给出的 2 个最流行的 解决方案 是 1 您可以通过在清单中添加 android screenOrientation
  • 如何实现文件系统和数据库的协调?

    我正在开发一个在线文件管理项目 我们将引用存储在数据库 sql server 上 将文件数据存储在文件系统上 当我们上传文件以及删除文件时 我们面临着文件系统和数据库之间的协调问题 首先 我们在数据库中创建引用或在文件系统上存储文件 问题是
  • 打印字符时会发生哪些积分促销?

    我最近读到了 unsigned char x 1 printf u x 调用未定义的行为 因为由于格式说明符 u printf 需要一个无符号整数 但我仍然想了解这个例子中发生了什么 我认为积分提升规则适用于表达式printf u x 和代
  • 当调用异步方法而不等待时会发生什么?

    我想知道如果我调用一个标记为异步而不使用等待的方法会发生什么 考虑这个例子 private int id 0 async Task Initialize var content await LoadFromDisk id await Pro
  • 如何避免 clang: No such file or directory 错误

    我正在尝试将 RPostgreSQL 安装到我的 R 实例中 我用 Anaconda 下载了 R 还下载了自制软件 当我运行 install packages RPostgreSQL 时 我收到一条错误消息 make x86 64 appl
  • 更新 Windows 后 SqlClient 错误 - “传入表格数据流 (TDS) 远程过程调用 > (RPC) 协议流不正确”

    自从将 Windows 10 更新到 1803 以来 每当我运行连接接受标量参数的表值函数的 EF 查询时 我都会开始收到此错误 消息 传入的表格数据流 TDS 远程过程调用 RPC 协议流不正确 参数2 数据类型0x00 未知 堆栈跟踪