我在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>
这里有什么不寻常的事我不知道吗?
答案 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作为参数)。
但是感谢你的回答,那些可能是好事要检查,如果上面没有问题。