我尝试创建的此应用程序,其“实例/副本”将安装在客户端的多台PC上,并且能够从始终运行SQL Server的同一客户端的另一台PC访问同一数据库通过相同的网络(即:它们具有相同的路由器和服务器的静态IP等)。
我有两种方法可以做到这一点:
通过第一种方法,
我尝试设置连接字符串,例如:
SqlConnection con = new SqlConnection("Data Source =[serverPcIP,Port];Integrated Security=True;Connect Timeout=30");
SqlConnection con = new SqlConnection("SERVER=[serverPcIP]; Port=[portno];Integrated Security=True;Connect Timeout=30");
在服务器-安全设置中: 我已允许“ SQL Server和Windows身份验证模式”
在Sql Server配置管理器> SQL Server网络配置> SQLEXPRESS的协议中=> TCP / IP =启用;在IP地址-> IP1-> TCP端口= 1433 (我在我的连接字符串中使用的端口)下
在高级防火墙设置中:
已启用端口1433的传入和传出规则。
我得到的例外:
其他信息:建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称正确,并且已将SQL Server配置为允许远程连接。 (提供者:TCP提供程序,错误:0-等待操作超时。)
有人可以告诉我我缺少什么配置(在连接字符串中还是在SQL Server本身中)?
答案 0 :(得分:1)
您的连接字符串缺少实例名称,例如数据源= <主机名或ip> \ SQLEXPRESS 。如果您的数据库在默认端口1433上侦听,则无需使用连接字符串将其传递
如果设置SQL Server,则可以在默认SQL Server实例或命名实例之间进行选择。对于SQL Express,默认设置是安装名称为 SQLEXPRESS 的命名实例。如果您不使用默认实例,而是安装命名实例,则必须将其与连接字符串一起传递。
默认的SQL Server实例只是一个名称为 MSSQLSERVER 的命名实例。因此,如果您将数据库实例安装为默认实例,则可以使用
答案 1 :(得分:1)
根据您的屏幕截图,在IP1下,该IP地址处于活动状态,但未启用。
此外,以169.x.x.x开头的IP地址通常表示您已将此网卡设置为使用DHCP,但是该网卡无法从DHCP服务器获得IP地址。
您介意尝试使用静态IP地址吗?
答案 2 :(得分:0)
请考虑以下步骤:
Server is listening on [ 'any' <ipv4> 1433].
更多详细信息,follow these steps。另外,this..