我们最近使用代理配置“vs2017-win2016”在 Azure DevOps 中运行自动化测试。但是,由于该配置已被弃用,我们最近不得不升级到“windows-latest”配置,并且在尝试连接到 SQL 数据库以拉回数据时突然开始收到错误
'The 'SQLNCLI11.1' provider is not registered on the local machine'
。
我做了一些谷歌搜索,听起来这些代理缺少 Microsoft Access 数据库引擎,这就是它失败的原因。有没有人找到解决方法?使用自托管代理并不是真正的选择,因为我们需要资源来设置它们,但我们无法使用这些资源,而且我们也没有预算。任何帮助将不胜感激!
我用来连接的连接字符串是:
"Server=tcp:" + server + ",1433;Initial Catalog = " + initialCatalog + ";Persist Security Info=False;User ID = " + username + ";Password=" + password + ";MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;Provider=SQLNCLI11.1"
其中“server”、“initialCatalog”、“username”和“password”是我们传入的参数。
看起来 SQLNCLI 已被弃用,您应该使用 MSOLEDB
我想它已从构建代理中删除以鼓励迁移
这是一些示例连接字符串
https://www.connectionstrings.com/ole-db-driver-for-sql-server/
此连接字符串是否有效:
"Provider=MSOLEDBSQL;Server=tcp:" + server + ",1433;Database = " + initialCatalog + ";UID = " + username + ";PWD=" + password + ";"
这里有更多示例 sqloledb 连接字符串
https://www.connectionstrings.com/microsoft-ole-db-provider-for-sql-server-sqloledb/
我今天遇到了这个问题。我们现有的测试代理使用 SQLNCLI。自几年前配置以来,这些功能正常运行,没有任何问题。
我们想向代理池中添加更多代理,当我们尝试在这些代理上执行管道执行时,我们收到此错误:
“SQLNCLI11”提供程序未在本地计算机上注册
原因是 SQLNCLI 已被弃用。
我们从这里下载了SQL Server 2012 Native Client: https://www.microsoft.com/en-us/download/details.aspx?id=50402
这解决了我们的问题,无需对我们的代码或 PowerShell 脚本进行任何其他更改。
另一种选择是选择已接受的答案。