问题标签 [microsoft-data-sqlclient]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
29 浏览

c# - SqlConnection.Open 上的 Microsoft.Data.SqlClient XmlException -“缺少根元素”

我们已经升级了要使用的应用程序,Microsoft.Data.SqlClient因为System.Data.SqlClient我们需要 Always Encrypted 支持。但是,在升级时,它会抛出一个异常 open 试图创建一个新的SqlConnection. 我尝试了各种连接字符串风格的排列,但没有任何帮助。

堆栈跟踪(不是很有帮助)

有想法该怎么解决这个吗?

0 投票
1 回答
1560 浏览

c# - nuget 包 Microsoft.Data.SqlClient 是否适用于实体框架?

我的应用程序在 .NET Framework 4.7 上运行,我使用的是 Entity Framework 6.1.3。目前,我的代码使用命名空间中的一些类,System.Data.SqlClient例如SqlParameter. 我想切换到Microsoft.Data.SqlClient.

但是,我不确定 EF6 是否与Microsoft.Data.SqlClient. 这是 Microsoft 的一篇旧文章,它说 EF Core、EF 6 等尚未过渡到新的提供程序Microsoft.Data.SqlClient。所以,我有点困惑。

System.Data.SqlClient下面的代码一切正常

但是,当我切换到 时Microsoft.Data.SqlClient,出现此错误:

System.InvalidCastException:SqlParameterCollection 只接受非空 SqlParameter 类型对象,不接受 SqlParameter 对象。
在 System.Data.SqlClient.SqlParameterCollection.ValidateType(Object value)
在 System.Data.SqlClient.SqlParameterCollection.AddRange(Array values)
在 System.Data.Entity.Core.Objects.ObjectContext.CreateStoreCommand(String commandText, Object[] 参数)
在 System.Data.Entity.Core.Objects.ObjectContext.ExecuteStoreQueryInternalAsync.d__6f`1.MoveNext()

0 投票
1 回答
1178 浏览

c# - 使用 Microsoft.Data.SqlClient 2.0 时无法从单元测试加载 DLL 'Microsoft.Data.SqlClient.SNI.x86.dll'

在我的代码中使用Microsoft.Data.SqlClient包(2.0 版)时,当通过 CI 提供程序中的VSTest.console.exe执行单元测试时(以及在本地运行时),我收到以下错误:

System.TypeInitializationException:“Microsoft.Data.SqlClient.TdsParser”的类型初始化程序引发异常。---> System.TypeInitializationException:“Microsoft.Data.SqlClient.SNILoadHandle”的类型初始化程序引发了异常。---> System.DllNotFoundException:无法加载 DLL 'Microsoft.Data.SqlClient.SNI.x86.dll':找不到指定的模块

代码正确执行,单元测试在 NCrunch 和 Visual Studio 2019 测试运行程序中也可以正常工作 - 那么问题是什么?

0 投票
0 回答
178 浏览

c# - 如何让 Microsoft.Data.SqlClient 与 DataSet Designer 一起工作?

很简单,如何让 Visual Studio 中的 Datasets Designer 使用 Microsoft.Data.SqlClient 作为提供者?

我在 NetStandard2.0 项目中做了以下事情。

添加 nuget Microsoft.Data.SqlClient
将新数据集添加到项目。
打开数据集设计器并添加了一个新的 TableAdapter。
设置连接字符串等和所有其他位。然后设计师创建了适配器。
单击 TableAdapter -> 属性 -> 连接,我看到提供程序是 System.Data.SqlClient 将 System.Data.SqlClient
更改为 Microsoft.Data.SqlClient
单击保存并收到以下错误。

对象“”上的属性访问器“DbObjectName”引发了以下异常。'无法为名为 'Microsoft.Data.SqlClient' 的数据提供者获取提供者工厂

0 投票
2 回答
361 浏览

azure-devops - Azure 发布管道 (YAML) IIS Web 部署在锁定文件上失败,生成 ERROR_FILE_IN_USE

实际的

部署时发布管道失败

预期的

部署不会失败

根本原因

文件“Microsoft.Data.SqlClient.SNI.x86.dll”被外部进程锁定,即使“使应用程序脱机标志”设置处于打开状态

解决方法

手动回收应用程序池并重新运行失败的部署。

使用“recycleAppPool”应用“Action IIS 应用程序池”设置时,尝试自动化回收也失败了。

信息

错误信息

0 投票
0 回答
47 浏览

asp.net-core - 为什么我的 Windows 后台服务无法打开连接字符串?

我在 .Net 5 中创建了一个 Windows 后台服务,它连接到一个 SQL 服务器数据库,并检查要发送的电子邮件。当我从 Visual Studio 运行它时,它会启动并正常工作。但是,当我按照本教程部署包时 ,服务启动然后终止,并在事件日志中显示以下错误。

我知道它告诉我 ConnectionString 属性没有被初始化。我不明白为什么它在调试模式下运行良好时会抛出下面的错误。只有在部署时才会崩溃。

然而,我在同一解决方案中的剃须刀页面 Web 应用程序使用相同的方法、相同的连接字符串,并且此错误的问题为零。它只会与 Windows 后台服务应用程序一起崩溃。

这看起来像是后台服务的权限问题吗?我在这里想念什么?

我已经尝试在本地机器和服务器上以各种配置部署它......不走运。同样的错误。

任何帮助,将不胜感激。我已经搜索谷歌几个小时,似乎无法显示任何有用的东西。

谢谢你的帮助...

*** 更新 *** 有问题的代码似乎在这里:

这称为...

这当然是从 appsettings.json 获取连接字符串,看起来像这样......

}

但是,我通过直接对连接字符串进行硬编码以绕过 ConString() 方法对其进行了测试,但仍然出现相同的错误。Windows 服务处理连接字符串的方式是否与 Web 应用程序不同?需要不同的格式吗?

0 投票
1 回答
147 浏览

c# - 这种情况一直在发生 - 在 Visual Studio 2019 中的 .NET Core 3.1 调试会话期间找不到 Microsoft.Data.SqlClient.resources.dll

这种情况一直在发生 - 在 Visual Studio 2019 中的 .NET Core 3.1 调试会话期间找不到 Microsoft.Data.SqlClient.resources.dll

异常消息:“无法加载文件或程序集 'C:\Users\user1\Dev\source\repos\repo_name\project_name\bin\Debug\netcoreapp3.1\runtimes\win\lib\netcoreapp3.1\Microsoft.Data。 SqlClient.resources.dll'。系统找不到指定的文件。”

它只发生在这个特定的包中,基本上是当我去创建一个新的 SqlConnection 对象实例时。一切正常,除了系统上的一些随机软件更改似乎总是影响这个包。

我难住了。任何想法如何在 C# 中解决这个问题?如果我修复或重新安装 Visual Studio 和 .NET Core SDK,它似乎会神奇地自行修复。

0 投票
1 回答
73 浏览

c# - Microsoft.Data.SqlClient 在某些项目中需要 NuGet,但其他项目您可以在没有 NuGet 的情况下使用 Microsoft.Data.SqlClient

在某些项目中,我需要先将 NuGet 包 Microsoft.Data.SqlClient 添加到项目中

在其他项目中,我可以在不显式添加 NuGet 包的情况下做到这一点。下面的示例都是 .NET 6.0 项目(与 .NET 5 相同)。

直接引用: 需要 Nuget Microsoft.Data.SqlClient

不直接引用: 不需要 Nuget Microsoft.Data.SqlClient

我想知道这是如何工作的。包是否以某种方式间接引用?

0 投票
0 回答
66 浏览

.net - Microsoft.Data.SqlClient.SqlConnection.OpenAsync 引发错误,提示“字典中不存在给定的键”。

将 Microsoft.Data.SqlClient 从 v2 升级到 v4 后突然出现此错误。恢复代码没有效果,错误仍然存​​在。它是一个包含数据源、初始目录、用户名、密码和 MARS 的基本连接字符串。通过 SSMS 连接时,相同的设置可以正常工作,因此这不是权限问题;长期以来,这一切都很好。

加密默认关闭。我注意到与此错误同时发生的唯一奇怪的事情(除了客户端版本更新,我怀疑它损坏了某些东西)是,如果我打开加密,我会收到一个关于证书链无效的错误。我能找到的唯一一个最近过期的根证书是 GlobalSign 根证书。我已经更新了 Windows 并且错误仍然存​​在。

堆栈跟踪: