SQL Server连接问题

时间:2009-10-16 07:23:10

标签: c# .net sql-server-2008 visual-studio-2008

我在Windows Server 2003上使用VSTS 2008 + .Net 3.5 + C#+ SQL Server 2008 Enterprise。我使用以下连接字符串,labtest1是本地计算机名称,我使用ADO.Net从本地计算机连接。然后它总是因连接错误而失败。但是当我将连接字符串从“labtest1”更改为“。”时,连接对于相同的ADO.Net客户端代码没有任何问题。有什么想法是错的吗?

Data Source=labtest1;Initial Catalog=CustomerDB;Trusted_Connection=true;Asynchronous Processing=true

以下是我收到的详细错误消息

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

6 个答案:

答案 0 :(得分:1)

对我来说看起来像是一个Sql Server配置问题:您是否尝试在Sql Server网络配置中调整协议?应启用命名管道或TCP / IP。

答案 1 :(得分:1)

使用“。”时或者“(本地)”它连接到PC上的默认实例,可能是SQL Server安装了实例,在这种情况下,您必须在连接字符串中以“SERVER \ INSTANCE_NAME”格式指定实例名称。

在SQL Management Studio中执行此查询以查看完整的服务器\实例名称

select @@servername

答案 2 :(得分:1)

我之前看到过这个问题,ZoneAlarms阻止了连接(在试图连接到SQL服务器的机器上)。我会花一些时间在防火墙等周围调查这个区域。

希望这有帮助

答案 3 :(得分:1)

您是否在网络配置中启用了命名管道网络协议? (在SQL Server配置管理器--sql server 2005中,这就是我所拥有的,在2008年可能会有所不同 - 您应该能够验证此设置)

答案 4 :(得分:1)

尝试按计算机名称ping ping labtest1。如果找不到服务器,请尝试使用域名ping labtest1.mydomainname.com。如果这样做,那么您只需要在域控制器中添加/修复DSN别名,或者只需重新登录到该计算机。

答案 5 :(得分:1)

另外一个 - 可能不相关 - 但是你没有指定安全模型,至少不是作为样本提供的字符串。

我希望看到:连接字符串中的Integrated Security = True(假设它是本地计算机)。

可能相关的另一件事是 - 正如已经提到的 - 协议,我希望确保启用TCP / IP。