无法通过应用程序访问其他计算机上的 LocalDB



我做了一个使用LocalDB的应用程序,引用一些预定义的值作为它所做的一些数学的一部分。 我创建了一个安装程序项目,以便在安装应用程序时,将数据库的副本发送到[ProgramData][ProductName],该副本被映射为ConnectionString的路径。

当我安装它并在我的计算机上运行应用程序(在 Visual Studio 之外(时,它也完全按照我想要的方式运行 - 并且代码中没有错误、警告或消息。 但是,当我将其安装到其他人的计算机上时(这样他们就可以使用它并指出他们遇到的任何错误(,这就是问题出现的地方。

在他们的计算机上,每当代码引用 LocalDB 时,他们都会收到以下异常消息:

"尝试建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误" System.Data.SqlClient.SqlException (0x80131904(。 该错误继续指出 LocalDB 实例不存在。

我已经仔细检查了ProgramData文件夹,并且可以确认LocalDB在安装过程中确实被复制到那里 - 并且我已经确认代码在尝试连接到它时正在查看正确的文件夹 - 我只是无法弄清楚发生了什么。

我已经检查了用户是否具有对该文件夹的读/写访问权限,并且是其计算机上的本地管理员。

请问有人可以帮助指导我解决这个问题吗?

连接字符串在下面,如果它有帮助的话:

AppDomain.CurrentDomain.SetData("DataDirectory", Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), "Application_Name"));
ConnectionString = @"Data Source=(LocalDB)MSSQLLocalDB;AttachDbFilename=|DataDirectory|Database1.mdf;Integrated Security=True";

您实际上可以从其他机器连接到本地数据库实例。这是一个完全有效的配置。(不过,如果你真的像服务一样运行它,你最好使用 SQL Server Express Edition(。

首先,您需要确保本地数据库实例已启动。这可以是您的应用程序,也可以是通过 SqlLocalDB 实用程序。看这里: https://learn.microsoft.com/en-us/sql/tools/sqllocaldb-utility?view=sql-server-2017

其次,您需要确保启用TCP。设置共享实例的详细信息如下所述:https://learn.microsoft.com/en-us/sql/database-engine/configure-windows/sql-server-express-localdb?view=sql-server-2017

希望有帮助。

相关内容

最新更新