2016-03-22 35 views
0

,当我通过IP adresss连接我的连接字符串工作通过别名连接到远程SQL Server

<connectionStrings> 
    <add name="DefaultConnection" connectionString="Data Source=ALIAS_SERVERNAME;Initial Catalog=DATABASE_NAME;Integrated Security=True" providerName="System.Data.SqlClient" /> 
    <add name="DefaultContainer" connectionString="metadata=res://*/Models.Db.ModelName.csdl|res://*/Models.Db.ModelName.ssdl|res://*/Models.Db.ModelDb.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=192.168.0.61;initial catalog=DATABASE_NAME;integrated security=True;multipleactiveresultsets=True;application name=EntityFramework&quot;" providerName="System.Data.EntityClient" /> 
    </connectionStrings> 

我创建别名的远程服务器上,像我这样做是localy(相同的端口和名称),但它不工作。当我将IP地址放入连接字符串时,就像我发布的IP地址一样。 有人可以请求给我一些关于如何解决问题的指导。

错误我正在尝试通过别名进行连接,并通过IP进行连接。顺便说一句可以通过别名连接本地。

(EntityException):底层提供程序在打开时失败。

+0

有没有人试图问我系统管理员是否给出了相同的主机名? @MuratYıldız感谢尝试帮助! – 1392023093user

回答

2

因此,您的数据库服务器知道它的别名,但您的应用程序服务器不是。您必须在应用程序服务器上创建别名。 你可以做到这一点与

工具Cliconfg.exe

(开始>运行> cliconfg>点击 “OK”) 而不是设置你的协议和端口一样DB服务器上

1

您可能需要在您的别名的末尾添加SQL Server名称即SQLEXPRESS等,如下图所示:

<connectionStrings> 
    <add name="DefaultConnection" connectionString="Data Source=ALIAS_SERVERNAME\SQLEXPRESS; 
     Initial Catalog=DATABASE_NAME;Integrated Security=True" providerName="System.Data.SqlClient" />  
</connectionStrings> 

如果你不为MSSQL Server中使用默认的名称,那么你需要改变你用作它的名字。您可以在SQL Server Management Studio的“连接”对话框的“服务器名称”字段中进行检查,如下所示。

enter image description here


更新:这里是下面的数据链接属性对话框中显示:

enter image description here


如果不解决这个问题,看看The underlying provider failed on open。希望这有助于...

+0

我只从管理工作室连接到别名,没有SQL实例。所以我不认为这是问题。 – 1392023093user

+0

当我创建别名时,我也添加了sql服务器名称,但仍然是相同的错误。 – 1392023093user

+0

创建一个空白记事本并将其重命名为“X.UDL”双击打开它,在连接选项卡下选择服务器名称/输入名称使用正确的凭证和数据库确定保存它。现在在记事本中打开文件,并检查,比较连接字符串属性与此... –