0

我有两个 .net 解决方案。他们都有这个代码:

var connectionString = "Server = ServerName; Database = DatabaseName; Trusted_Connection=True;"
var connection = new SqlConnection(connectionString);

connection.Open();
connection.Close();

他们都使用完全相同的连接字符串。它们连接到 MSSQL Server;

在第一个解决方案中connection.Open()成功,在第二个解决方案中失败了。错误消息:命名管道提供程序,错误:40 - 无法打开与 SQL Server 的连接

每次我创建新的解决方案时都会失败。所以这种连接只适用于一种特定的解决方案。而且,我的队友对此进行了测试,并没有出现此类问题。你能帮忙提示一下为什么会这样吗?

4

3 回答 3

2

检查您的 SQL 服务器是否启用了 TCP/IP 协议,如果它使用动态端口,请确保 SQL Browser 服务正在运行。

确保任何防火墙软件(Windows 防火墙等)都为特定 exe 添加了例外(sqlservr.exe 文件被复制到实例文件夹中,该文件夹位于C:\Program Files\Microsoft SQL Server\{instance name}\MSSQL\Binn,其中实例名称可能类似于MSSQL11.SQLEXPRESS)或 TCP 端口 1433或 UDP 端口 1434(假设标准设置的 SQL 服务本身的 TCP 1433,SQL Browser 服务的 UPD 1434)。

检查用于访问服务器的用户帐户(它还应该有足够的权限并且应该启用登录),在这种情况下,它将是您登录的任何 Windows 帐户或您的 IIS 应用程序池运行的任何帐户,因为你正在使用Trusted_Connection=True.

还要检查您的机器上是否有最新的 SQL 客户端,您可以在此处获取最新的 windows 版本。

于 2013-05-29T13:58:44.233 回答
1

打开 Sql Server 配置管理器并确保为您的 Sql server 实例启用了 Named Pipes 选项。

于 2013-05-29T14:19:24.590 回答
0

对不起,打扰您。我的问题是我的注意力不集中。我在另一台网络机器上创建了解决方案。

于 2013-06-06T10:03:14.200 回答