我移动了一个过去工作正常的项目,但现在又无法访问我的数据库了。我使用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)
我认为这可能与几件事情有关,但我不确定,也不知道如何修复它们:
无法使其工作,并且异常是抛出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连接字符串
(我翻译自法语)
答案 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和命名管道连接。