Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SQL Server连接问题_C#_.net_Sql Server 2008_Visual Studio 2008 - Fatal编程技术网

C# SQL Server连接问题

C# SQL Server连接问题,c#,.net,sql-server-2008,visual-studio-2008,C#,.net,Sql Server 2008,Visual Studio 2008,我在WindowsServer2003上使用的是VSTS2008+.NET3.5+C#+SQLServer2008企业版。我使用以下连接字符串,labtest1是本地机器名,我使用ADO.Net从本地机器进行连接。然后,它总是会因连接错误而失败。但是,当我将连接字符串从“labtest1”更改为“.”时,连接对相同的ADO.Net客户端代码没有问题。你知道怎么了吗 Data Source=labtest1;Initial Catalog=CustomerDB;Trusted_Connection

我在WindowsServer2003上使用的是VSTS2008+.NET3.5+C#+SQLServer2008企业版。我使用以下连接字符串,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的连接)

在我看来似乎是SQL Server配置问题:您是否尝试在SQL Server网络配置中优化协议?应启用命名管道或TCP/IP。

在我看来似乎是Sql Server配置问题:您是否尝试在Sql Server网络配置中优化协议?应启用命名管道或TCP/IP。

当您使用“.”或“(本地)”连接到电脑上的默认实例时,可能SQL Server安装了实例,在这种情况下,您必须在连接字符串中以“Server\instance\u name”格式指定实例名称

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

select @@servername
当您使用“.”或“(local)”连接到电脑上的默认实例时,可能是SQL Server安装了实例,在这种情况下,您必须以“Server\instance\u name”格式在连接字符串中指定实例名称

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

select @@servername

我以前见过ZoneAlarms阻塞连接的问题(在尝试连接到SQL server的计算机上)。我会花一些时间调查防火墙周围的这个区域


希望这有帮助

我以前见过ZoneAlarms阻止连接的问题(在尝试连接到SQL server的计算机上)。我会花一些时间调查防火墙周围的这个区域


希望这有帮助

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

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

尝试按计算机名ping:
ping labtest1
。如果找不到服务器,请尝试使用域名ping labtest1.mydomainname.com。如果可行,则只需在域控制器中添加/修复DSN别名或重新登录计算机。

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

其他方法-可能不相关-但您没有指定安全模型,至少没有在作为示例提供的字符串中指定

我希望在连接字符串中看到:integratedsecurity=True(假设它是本地机器)


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

还有一件事——可能不相关——但您没有指定安全模型,至少没有在作为示例提供的字符串中指定

我希望在连接字符串中看到:integratedsecurity=True(假设它是本地机器)



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

我尝试使用SSMS连接到“labtest1”,然后打开一个新的查询窗口以执行select@@servername,结果是“labtest1”。好像没什么问题?服务器名称区分大小写吗?有什么想法需要进一步分析吗?我已经发布了详细的错误消息,有什么想法是错的吗?所以这不是玩把戏。tzup的建议也是我的下一步。在SQLServer配置管理器中启用命名管道之后,它就可以工作了。为什么SQL Server将使用命名管道?我认为应该使用TCP/IP?我尝试使用SSMS连接到“labtest1”,然后打开一个新的查询窗口来执行select@@servername,结果是“labtest1”。好像没什么问题?服务器名称区分大小写吗?有什么想法需要进一步分析吗?我已经发布了详细的错误消息,有什么想法是错的吗?所以这不是玩把戏。tzup的建议也是我的下一步。在SQLServer配置管理器中启用命名管道之后,它就可以工作了。为什么SQL Server将使用命名管道?我认为应该使用TCP/IP?当我打开SQL Server Configuration Manager时,有5项,1。sqlserver服务;2.SQL Server网络配置(32位);3.SQL本机客户端10.0配置(32位);4.sqlserver网络配置;5.SQL本机客户端10.0配置。您的意思是我应该调整哪一个?在SQL Server网络配置中,您将找到一个“协议”节点。启用了哪些协议?尝试启用命名管道或tcp/ip。正如Dean所建议的,这可能是防火墙问题。您使用个人防火墙还是Windows防火墙?我认为共享内存只适用于这个“.”符号,并且您有东西阻止您对SQL Server的TCP/IP访问。本地计算机上的命名管道不需要网络进行功能测试,您可以进行的测试是禁用名称