3

我正在尝试使用 Linq DataContext 连接到 SQL Server 2008 R2 Express 数据库。数据库引擎正在本地网络中的另一台机器上运行。我们暂时使用 SQL 身份验证。SQL Server 设置为允许远程连接。

我的连接字符串看起来像这样,并且工作正常。我没有指定实例,但它是唯一的,所以我猜它是默认选择的:

Data Source=192.168.1.50;Initial Catalog=DbName;User ID=SomeUser;Password=SecretPassword;

我也在本地安装了相同的引擎,这个连接字符串也可以:

Data Source=localhost;Initial Catalog=DbName;User ID=SomeUser;Password=SecretPassword;

这个也是,在本地连接:

Data Source=.\SQLEXPRESS;Initial Catalog=DbName;User ID=SomeUser;Password=SecretPassword;

那么,如果在远程计算机上运行引擎的多个实例,而我想专门引用一个实例呢?

Data Source=192.168.1.50\SQLEXPRESS;Initial Catalog=DbName;User ID=SomeUser;Password=SecretPassword;

上面的连接字符串产生

连接到数据库时出错:在建立与 SQL Server 的连接时出现与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。(提供者:SQL 网络接口,错误:26 - 错误定位服务器/指定的实例)

为什么这不起作用?我找不到连接到远程数据库引擎上特定实例的连接字符串的任何示例。

4

2 回答 2

1

试试这个连接字符串进行远程连接:

Data Source=192.168.1.50\SQLEXPRESS,1433;Network Library=DBMSSOCN;Initial Catalog=DbName;User ID=SomeUser;Password=SecretPassword;

如果使用防火墙,则应打开端口 1433。并尝试在 sql server management studio 中启用与 DbName 的远程连接。

于 2013-06-18T08:50:59.127 回答
0

即使使用 IP 地址,您也必须指定实例名称。

阿卡,

数据源=192.168.1.50\SQLEXPRESS

是你那里的最佳人选。

  1. 防火墙。您可能必须打开端口号。但更重要的是,您可能必须打开程序名称。

注意这篇文章:

http://technet.microsoft.com/en-us/library/ms175043.aspx

请注意文章中的这个区域:

In the Program dialog box, select This program path. Click Browse, and navigate to the instance of SQL Server that you want to access through the firewall, and then click Open. By default, SQL Server is at C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Binn\Sqlservr.exe. Click Next.

还:

我喜欢用这个程序来“ping”我的机器和端口。强调“和港口”。

http://www.microsoft.com/en-us/download/details.aspx?id=24009

我保留了那个小工具,用于对连接问题进行基本调试。

于 2013-06-17T18:07:54.180 回答