2016-12-26 226 views
4

我在家庭网络上的IP为192.168.66的计算机上有SQL Server Express实例。远程计算机上的SQL Server

我在端口49170上启用了TCP/IP,并在Windows防火墙上添加了传入规则。

我有一个应用程序,我想要在我的网络内的不同计算机上安装。当我在Visual Studio中测试我的应用程序时,我无法连接到远程计算机上的实例。

<connectionStrings> 
    <add name="EquipamentoDal.Properties.Settings.ExtinguisherMngConnectionString" 
     connectionString="Data Source=192.168.1.66,49170;Initial Catalog=ExtinguisherMng;Integrated Security=True" 
     providerName="System.Data.SqlClient" /> 
</connectionStrings> 

服务器名称是DESKTOP-HU51203\EXPRESS。 我做错了,无法连接?

+0

什么是例外?你能ping远程PC的IP地址吗? – w0051977

+0

您正在使用'Integrate security = true',在此计算机中拥有足够的用户权限吗?你有没有冒充一些用户? – McNets

+0

集成安全性可能不适用于家庭网络。 – Crowcoder

回答

3

您的连接字符串未指定要连接的命名实例,它仅指定IP地址,这意味着任何客户端都将连接到默认实例而不是命名实例。

默认情况下,SQL Server Express的是不同的配置到SQL Server的“标准”版本(标准版,工作组版,开发版和企业版),如下所示:

  • 阻止传入的远程连接 - 这必须显式地启用在SQL Server配置管理器
  • 使用命名实例一个称为SQLEXPRESS而不是被配置为默认实例
  • 的SQL Server Express在支持AttachDbLocalDb中也是独一无二的 - 其他SKU /版本不支持AttachDbLocalDb功能。

在你的情况,你已经启用了远程连接和你不使用AttachDbLocalDb,所以你只需要配置您的客户端连接到命名实例:

您指定命名在连接字符串中使用Data Source=Server=参数中的<host>\<instance name>,<port>格式的实例,例如Data Source=foo\SQLEXPRESS,1433,或者你的具体情况:

Data Source=192.168.1.66\SQLEXPRESS,49170;Initial Catalog=ExtinguisherMng;Integrated Security=True 

你提到你的家庭网络,这意味着它不太可能你正在使用Active Directory或Kerberos上这样做,并给予SQL Server Express的不公开它用于其服务标识的密码(用户也不能通过网络认证为NT AUTHORITY\NetworkService,这意味着您不能使用Integrated Security=True(或Integrated Security=SSPI等效,但SSPI是首选值),则需要设置明确的SQL Server登录用户名和密码在您的连接字符串中。

  1. 创建服务器在一个新的登录对象(您需要登录到服务器首先以某种方式,在本地或远程使用sa帐户,如果存在的话)
  2. 用​​
更换Integrated Security=True指定新的登录凭据
+0

我已经尝试过192.168.1.66 \ SQLEXPRESS,49170之前,并且有同样的问题 –

+0

@RolandoAzevedo你得到了什么确切的错误信息? – Dai

+1

服务器尚未找到或未找到,, ....可能未配置为允许远程连接。 –

相关问题