无法连接到SQL Server数据库

时间:2011-12-18 22:31:27

标签: c# asp.net sql sql-server windows-server-2008

我目前正在使用asp.net c#开发一个Web应用程序。我今天有一台服务器 要发布我的网站及其数据库。它是运行Windows Server 2008 R2的服务器。

但我有一个问题:

我的网站似乎无法访问数据库。如果我从本地网络上的另一台计算机运行该网站,我可以访问服务器的数据库,但是当我从数据库所在的同一服务器运行网站时,我无法访问。这真的很奇怪。我希望有人能帮帮忙。

我刚收到错误消息,说它无法访问数据库。

最奇怪的是我在两台计算机上使用相同的连接字符串,但它仍然无效。 Windows Server 2008中是否存在某种设置?

这是我的连接字符串:

<add name="ConnectionString" 
     connectionString="Data Source=AXELS;Initial Catalog=Sailor;Persist Security Info=True;User ID=sa;Password=saab123" 
     providerName="System.Data.SqlClient" />

4 个答案:

答案 0 :(得分:2)

由于连接在一台机器而不在另一台机器上工作,我猜你有防火墙或类似的问题 - 但在我们看到实际的错误信息之前很难判断。在那之前,您可能想要做一些事情:

  • 如果在出现错误之前连接似乎已超时,则表明存在连接问题。你在两台服务器之间有防火墙吗?数据库服务器是否具有明确允许您的计算机(或内部)计算机通过的防火墙,但尚未设置为让Web服务器通过?您必须确保服务器上的端口1433已打开。

  • 网络服务器上是否还有其他可以连接数据库的网站?

  • 如果您具有对服务器的控制台访问权限,请尝试设置从服务器到数据库的ODBC - 通常在控制面板中 - &gt;数据源(ODBC)。如果您使用相同的数据库服务器,用户名和密码建立连接并测试连接,您可能会得到一些错误指示。

如果以上内容没有为您提供答案,我会尝试完成此处描述的步骤:

http://blog.sqlauthority.com/2009/05/21/sql-server-fix-error-provider-named-pipes-provider-error-40-could-not-open-a-connection-to-sql-server-microsoft-sql-server-error/

如果失败了,请看一下 - 这显然只有在你SQL Network Interfaces, error: 26

时才有效

http://blogs.msdn.com/b/sql_protocols/archive/2007/05/13/sql-network-interfaces-error-26-error-locating-server-instance-specified.aspx

答案 1 :(得分:1)

这可能是一个许可问题 您需要向我们显示您的连接字符串,以便我们可以看到您是如何尝试连接到数据库的。

例如,如果您使用的是Windows身份验证,则可能是您的应用在两台计算机上的不同帐户下运行 - 而其他计算机上的帐户具有访问数据库的权限,但该帐户位于数据库服务器没有。

答案 2 :(得分:0)

您是否检查了SQL Server上是否启用了您正在使用的协议,例如

C:\ Windows \ System32 \ cliconfg.exe - 64位版本

C:\ Windows \ SysWOW64 \ cliconfg.exe - 32位版本

或检查SQL Server配置管理器的“SQL Server Native Client *”选项卡。

答案 3 :(得分:0)

这仅适用于您不使用Windows身份验证的情况,否则请阅读有关Christian Specht特权的帖子 - 在这种情况下我同意。

您可以从网络上的另一台PC进行连接,这意味着所有数据库设置,用户帐户和权限都可能设置正确。

似乎服务器解析localhost的方式可能存在问题,因为它会尝试将数据源解析为localhost,因为AXELS =该机器上的localhost。

查看您的hosts文件,看看是否有任何有趣的指针,除了默认值。

位于C:\ Windows \ System32 \ drivers \ etc

应该有一个条目:127.0.0.1 localhost

相关问题