SQLException无法在ASP.NET MVC中连接

时间:2017-09-29 15:33:56

标签: c# sql-server asp.net-mvc

我移动了一个过去工作正常的项目,但现在又无法访问我的数据库了。我使用Entity Framework并成功连接到SQL Server 2012中的数据库。这是我的连接字符串的样子:

<connectionStrings>
    <add name="PrincipalServerContext" 
         connectionString="Data Source=ServerName\SQLEXPRESS;Initial Catalog=PrincipalServerDB;Integrated Security=True" 
         providerName="System.Data.SqlClient"/>
</connectionStrings>

当我启动网站时,我在身份验证后检索数据,但它会抛出异常

  

System.Data.SqlClient.SqlException

     

建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (提供者:命名管道提供程序,错误:40 - 无法打开与SQL Server的连接)

     

at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception,Boolean breakConnection)

我认为这可能与几件事情有关,但我不确定,也不知道如何修复它们:

  1. SQL Server中的用户权限
  2. 连接字符串可能有误,但我检查并重新检查了一百次
  3. 无法使其工作,并且异常是抛出Linq查询来访问DB。

    编辑我确实尝试发布要测试的网站,并有第二个连接字符串:

    <connectionStrings>
        <add name="PrincipalServerContext_DatabasePublish" 
             connectionString="Data Source=ServerName\SQLEXPRESS;Initial Catalog=PrincipalServerDB;Integrated Security=True" 
             providerName="System.Data.SqlClient"/>
    </connectionStrings>
    

    虽然我只是想在新计算机上调试我设置项目,如果我删除这一行,我有一个例外。那么也许我的程序正在搜索这个数据库并找不到任何东西?

      

    System.InvalidOperationException找不到PrincipalServerContext_DatabasePublish连接字符串

    (我翻译自法语)

1 个答案:

答案 0 :(得分:0)

它可能与用户权限无关。相反,您将项目移动到的新服务器无法访问SQL Server所在的服务器。

如果新服务器具有telnet,请在Application Server上的命令提示符中尝试:

telnet serverName 1433

它可能会在那里试图连接。你可以做的事情很少:

  • 如果两个服务器位于不同的区域,请确保两个服务器之间没有防火墙阻塞。

  • 检查SQL Server的服务器是否为端口1433打开了入站规则(默认情况下,SQL Server Express不会打开此端口,但Enterprise和Standard会这样做。)

    < / LI>
  • 检查SQL Server是否通过Sql Server配置管理器接受TCP IP和命名管道连接。