我正在开发一个正在使用的网络应用程序
SQL Server Express(Microsoft SQL Server 2016 (SP1) (KB3182545) - 13.0.4001.0 (X64) Oct 28 2016 18:17:30 Copyright (c) Microsoft Corporation Express Edition(64-bit) on Windows 10 Pro 6.3(Build 18362) :))。
Web 应用程序正在使用连接字符串连接到数据库。在搜索了几天以找到正确的连接字符串格式后,我设法找到了格式,使用 Nik 在此博客文章中描述的方法,它是:
Data Source = np:\\.\pipe\LOCALDB#A9DE3E14\tsql\query; Initial Catalog = MyDataBaseCatalog; User ID = myuser; Password=mypassword;
昨天一切正常,但今天停止了。我发现服务名称已更改为:
LOCALDB#B87CB983
用连接字符串中的新服务名称替换实例名称后,Web 应用程序运行良好,但这不是一个可接受的解决方案。
你能告诉我为什么实例名称会发生变化,是否有任何 Express 版本限制?如何将名称配置为永久?
此应用未使用常规 SQL Server Express Edition。Express Edition 作为服务运行,您可以在“服务”控制面板(在 Windows 上)中看到它,并且正如您所期望的那样,会有一个稳定的实例名称。
您要连接的此服务使用(名称令人困惑的)SQL Server Express LocalDB。这通常被称为“LocalDB”,以减少名称重叠的混淆。LocalDB 在进程中运行——也就是说,它不是一个服务,而是由使用它的应用程序启动的。
LocalDB 支持多种配置,具体取决于应用程序的访问方式。查看文档中标题为“自动和命名实例”的部分以及标题为“ LocalDB 的共享实例”的部分。