LocalDB 2012共享实例停止工作

时间:2014-07-04 11:25:32

标签: sql-server localdb

我正在使用localDB 2012在Db上执行CRUD操作。我希望在系统上的用户之间共享数据库。因此,我做了以下几点。

`

sqllocaldb.exe create myinstance
sqllocaldb.exe share myinstance myinstance.shared
sqllocaldb.exe start myinstance
... added SQL admin user to the instance to access from all the users

`

我已将此内容放入使用NT AUTHORITY \ ADMIN帐户的应用程序的安装程序中。

然后使用实体框架从我的应用程序连接到本地数据库,以及共享实例路径

`(localDb)\.\myinstance.shared; with attached file; and new SQL admin credentials`

这个连接最初工作了一段时间,奇怪的是一段时间后它停止工作!这发生在3台PC上,所以这是一个可重复的场景。

我收到以下消息: localdb命名管道提供程序无法打开连接 无法建立连接。

如果有人遇到过此问题/了解相关信息,请提供帮助。

2 个答案:

答案 0 :(得分:4)

注意:你真的想在这里使用常规的SQL Server Express,它作为一项服务运行,永远不会消失。有关LocalDB与常规SQL Server Express之间的比较,请参阅this post

LocalDB实例不是服务,它是一个常规的Windows进程。它属于一个用户,只能由该用户启动,并在一段时间不活动后关闭。共享实例可以由其他用户(仅在本地)连接,但如果关闭则无法启动它。

因此,在您的情况下,实例是由安装过程创建和启动的实例,由运行安装程序的任何人拥有,并与其他用户共享。他们可以连接到它并最初完成他们的工作。只要没有人使用它足够长时间,实例就会关闭。从现在开始,任何用户都无法访问它,直到所有者再次启动它。

答案 1 :(得分:0)

我已经很晚了,但是这篇文章帮助我找到了解决问题的方法,所以不妨回复其他人。

我遇到了同样的问题,我花了一段时间才发现拥有该实例的用户实际上正在关闭连接。

无论如何,这是我在我的案例中所做的。看起来实例是每个用户,所以基本上我为每个需要访问数据库的用户创建了一个具有相同名称的实例(在我的情况下为MSQLLocalDB)。我还将mdf文件放在所有用户都可以访问的位置(C:\ Program Data)。我想你可以使用SqlLocalDB.exe创建"实例名称" 来创建实例。我实际上再次将localdb安装到我最初想要共享实例的用户。这将创建一个单独的默认实例实例(MSSQLLocalDB)。