【发布时间】:2018-08-09 09:36:33
【问题描述】:
我们在 Visual Studio Online 构建任务中运行集成测试,针对在托管 VSTS 构建代理上运行的 LocalDB 实例执行它们。
我们有一个任务是通过执行这些命令来启动 LocalDB:
sqllocaldb create MSSQLLocalDB
sqllocaldb start MSSQLLocalDB
sqllocaldb info MSSQLLocalDB
它运行时似乎没问题:
LocalDB instance "MSSQLLocalDB" started.
Name: MSSQLLocalDB
Version: 13.1.4001.0
Owner: factoryvm-az442\VssAdministrator
Auto-create: Yes
State: Running
集成测试项目的连接字符串如下所示:
Server=(localdb)\\MSSQLLocalDB;Database=MyDatabase;Trusted_Connection=True;MultipleActiveResultSets=true
这已经工作了一年多,但在过去几天里,我们在尝试运行测试时看到了这个:
Login failed for user 'factoryvm-az442\VssAdministrator'
由于使用了Trusted_Connection,不知道为什么无法登录。我也尝试过删除它。我还尝试从sqllocaldb info MSSQLLocalDB 的输出中解析名为管道名称的实例,并在连接字符串中使用它,例如Server=np:\\.\pipe\LOCALDB#1579B709\tsql\query;Database=MyDatabase,但后来我明白了:
A connection was successfully established with the server, but then an error occurred during the login process.
(provider: Named Pipes Provider, error: 0 - No process is on the other end of the pipe.)
知道我们怎样才能让它再次运行吗?
注意:请注意这不与#44724118相同,因为我没有无效的连接字符串并且没有使用IntegratedSecurity
【问题讨论】:
-
这个MSDN SQL Server Question 可能会提供一些见解。这不是完全相同的问题,但在这种情况下,错误是由于 TCP/IP 未完全启用或配置为本地 DB 以接收外部通信而引起的。
-
这是旧版本的 SQL Server,而不是 LocalDB。尽管如此,我也尝试过使用命名管道,但我得到了
No process is on the other end of the pipe -
@Cocowalla 你能在本地通过sqllocaldb实用程序成功运行命令吗?
-
@AndyLi-MSFT 是的,在本地运行时一切正常。直到大约一周前,这一切都在 VSTS 中运行良好
标签: continuous-integration azure-devops azure-pipelines localdb