通过别名连接到远程sql server

时间:2016-03-22 17:29:15

标签: entity-framework sql-server-2012

当我通过IP地址连接时,我的连接字符串正常工作

<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>

我在远程服务器上创建了Alias,就像我做的那样(相同的端口和名称),但它不起作用。当我把IP地址放在连接字符串中时,就像我发布的那个一样,它正在工作。 有人请求给我一些关于如何解决问题的指示。

当我尝试通过Alias连接时,我收到错误,并且通过IP它正在工作。顺便说一句,可以通过Alias连接localy。

  

(EntityException):底层提供程序在Open上失败。

2 个答案:

答案 0 :(得分:2)

因此,您的数据库服务器知道其别名,但您的应用程序服务器不知道。您必须在应用程序服务器上创建别名。 你可以用

做到这一点
  

工具Cliconfg.exe

(开始&gt;运行&gt; cliconfg&gt;点击&#34;确定&#34;) 而不是设置您的协议,端口与数据库服务器相同

答案 1 :(得分: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


更新:以下是DataLink属性对话框:

enter image description here


如果它没有解决问题,请查看The underlying provider failed on open。希望这可以帮助...

相关问题