【问题标题】:TDS Error on Azure Entity Framework SQL Calls after Windows 10 April 2018 Update [duplicate]Windows 2018 年 4 月 10 日更新后 Azure Entity Framework SQL 调用出现 TDS 错误 [重复]
【发布时间】:2018-05-15 15:51:55
【问题描述】:

我有以下针对 Azure 中托管的 SQL Server 执行的 C# 代码。

protected IQueryable<T> FilterUpdatedRows<T>(IQueryable<T> query, DateTime lastSyncTimestamp) where T: class, ITimestamp
{
    return query.Where(x => x.InsertTimestamp >= lastSyncTimestamp ||
                            (x.UpdateTimestamp.HasValue && x.UpdateTimestamp >= lastSyncTimestamp));
}

Generic (T) 是实体框架上下文类,它们实现和接口强制定义 InsertTimestamp 和 UpdateTimestamp。

在我安装 Windows 10 的 2018 年 4 月更新之前,此代码一直运行良好。更新后我收到以下错误...

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

我确认导致问题的参数是 InsertTimestamp 和 UpdateTimestamp 字段。

仅当我在 Azure 上定位我的 SQL 数据库副本时才会发生此错误。将数据库导出到本地数据库没有问题。未升级到 2018 年 4 月更新的团队成员在访问 Azure 版本时没有问题。

我在本地版本上运行了 SQL 跟踪并捕获了正在执行的 SQL 语句。通过 SSMS 针对 Azure 版本运行该语句没有问题。

这里是trace捕获的SQL语句...

exec sp_executesql N'SELECT 
    [Extent1].[CrossingId] AS [CrossingId], 

    ... Misc other fields ...

    [Extent1].[CrossingInstanceId] AS [CrossingInstanceId]
    FROM (SELECT 
    [V_SYNC_CrossingsSync].[CrossingId] AS [CrossingId], 

    ... Misc other fields ...

    [V_SYNC_CrossingsSync].[CrossingInstanceId] AS [CrossingInstanceId]
    FROM [dbo].[V_SYNC_CrossingsSync] AS [V_SYNC_CrossingsSync]) AS [Extent1]
    WHERE ([Extent1].[InsertTimestamp] >= @p__linq__0) OR (([Extent1].[UpdateTimestamp] IS NOT NULL) AND ([Extent1].[UpdateTimestamp] >= @p__linq__1))',N'@p__linq__0 datetime2(7),@p__linq__1 datetime2(7)',@p__linq__0='1980-01-01 00:00:00',@p__linq__1='1980-01-01 00:00:00'

对可能发生的事情有什么想法吗?

谢谢

【问题讨论】:

    标签: sql-server azure sqlclient .net-4.7.2


    【解决方案1】:

    临时解决方法: 根据 ChainbridgeTech 将我的连接字符串中的 MultipleActiveResultSets 从 TRUE 更改为 FALSE,错误就会停止。

    已报告此问题并正在处理中。他们仍然需要复制,我仍在努力隔离我可以公开的可共享数据:

    https://github.com/Microsoft/dotnet/issues/749

    【讨论】:

    • 设置 MultipleActiveResultSets 为我解决了这个问题。谢谢大家。
    • 临时解决方案对我不起作用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-29
    • 1970-01-01
    • 2019-09-08
    相关资源
    最近更新 更多