错误:40 - 无法打开与SQL Server的连接 - 仅在登台网站上

时间:2009-09-08 02:22:57

标签: asp.net sql-server-2008 connection-string

我在Web服务器上有两个ASP.NET网站,还有两个SQL Server数据库。

我有一个网站#1的文件夹,其中包含一个web.config,其连接字符串指向数据库#1。

在网站#1的文件夹下,有一个名为'staging'的暂存文件夹,其中包含网站#2,而web.config中有一个指向数据库#2的连接字符串。

网站#1运作完美。

但是当我尝试运行网站2时,我总是收到以下错误:

  

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

我已经验证连接字符串是正确的,并且它指向数据库#2。

但是,即使我在网站#1中交换连接字符串,它在网站#1上完美运行,它仍然会失败。

这是连接字符串的样子:

<connectionStrings>
    <add name="WebsiteConnectionString" connectionString="Data Source=localhost;Initial Catalog=WebsiteStaging;User Instance = false;User Id=xxxx;Password=yyyy" providerName="System.Data.SqlClient" />
</connectionStrings>

这里有什么不寻常的事我不知道吗?

3 个答案:

答案 0 :(得分:0)

不确定您使用的是哪个版本的IIS,但您可能需要创建两个单独的Web应用程序:一个指向Website#1文件夹,另一个指向#2。

当您查看网站/虚拟目录的属性时,应为两个目录设置应用程序名称。是这种情况吗?

答案 1 :(得分:0)

LOCALHOST适用于IIS

(LOCAL)适用于SQL Server

我的连接字符串通常会说"Server=(LOCAL);Integrated Security=SSPI...."

我会检查安全选项卡,找出两个网站都在运行的身份。

答案 2 :(得分:0)

真的很抱歉......看起来根本就没有与连接有关。

这是因为Linq-to-SQL数据层(在另一个项目中)引用了自己的连接字符串(即使在我在Website项目中实例化DataContext的任何地方,我总是使用web.config连接string作为参数)。

但是感谢你的回答,那些可能是好事要检查,如果上面没有问题。