相同的连接在不同的.net解决方案中成功并失败

时间:2013-05-29 13:42:00

标签: c# .net sql-server ado.net

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

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

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

他们都使用完全相同的connectionString。并且它们连接到MSSQL Server;

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

每次我创建新解决方案时都会失败。因此,此连接仅适用于一个特定的解决方案。而且,我的队友对此进行了测试,并没有遇到这样的问题。 你可以帮忙提示为什么会这样吗?

3 个答案:

答案 0 :(得分:2)

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

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

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

同时检查您的计算机上是否有最新的SQL客户端,您可以获取Windows here的最新版本。

答案 1 :(得分:1)

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

答案 2 :(得分:0)

抱歉打扰你。我的问题是我的疏忽。我在另一台网络机器上创建了解决方案。