C# &引用;找不到服务器或服务器不可用;在测试服务器上,但不是在调试时

C# &引用;找不到服务器或服务器不可用;在测试服务器上,但不是在调试时,c#,sql-server,iis-6,C#,Sql Server,Iis 6,我在尝试从网站访问数据库时不断遇到一个错误,它返回一个找不到服务器或无法访问的错误 现在我做了一次搜索,发现了许多可能的原因——我打开了命名管道,也做了建议的事情(即将IP地址设置为“启用”),但我仍然得到了错误 错误SqlException:System.Data.SqlClient.SqlException(0x80131904): 错误网络发生错误或发生错误时 正在连接到SQL Server。找不到服务器或服务器不可用。 验证实例名称是否正确,以及的配置是否正确 SQL Server允许远

我在尝试从网站访问数据库时不断遇到一个错误,它返回一个找不到服务器或无法访问的错误

现在我做了一次搜索,发现了许多可能的原因——我打开了命名管道,也做了建议的事情(即将IP地址设置为“启用”),但我仍然得到了错误

错误SqlException:System.Data.SqlClient.SqlException(0x80131904): 错误网络发生错误或发生错误时 正在连接到SQL Server。找不到服务器或服务器不可用。 验证实例名称是否正确,以及的配置是否正确 SQL Server允许远程连接。(提供程序:命名管道提供程序, 错误:40-无法在上打开与SQL Server(SQL Server)的连接 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException 异常,布尔断开连接)位于

我还下载并复制/粘贴了IIS中用于此网站的web.config中的连接字符串,该应用程序能够连接和查询网站所针对的同一数据库

正如标题所说,当我在VS2010中调试它时,这个错误完全丢失了。从服务器启动时,是什么导致此错误


编辑:连接字符串包括用户名和密码(这不是Windows身份验证)。

很可能是安全问题。如果使用windows身份验证,请确保运行web应用程序的线程池具有足够的DB access\权限

问题是web.config引用了另一个配置文件

<appSettings file="config/dev.config">


因此,web.config中的连接字符串被忽略,而dev.config中的连接字符串则被忽略-将其同时包含在两者中是一个错误(测试服务器上的连接字符串是由其他人创建的,并在静态页面上工作-它仅在网站必须查询数据库时失败),这就是Visual Studio中的版本运行正常的原因。

连接字符串使用用户名和密码(access tester应用程序使用该用户名和密码连接SAN)。如果您继续遇到这种情况,一些可能的方法可以是(a)在部署和测试之前执行详细的日志记录,或者(b)在服务器上安装并运行Visual Studio远程调试器,并连接到进程,直接在服务器上进行调试。你下载的小应用,它可以直接从服务器连接到数据库,对吧,不是你的机器?这意味着您已验证是否可以从web服务器访问SQL server?是的,应用程序位于服务器上,并且在使用服务器使用的相同连接字符串时,它能够查询数据库。远程调试器的时间到了。我能想到的另一件事是,如果你的应用程序使用Linq To Sql和生成的DataContext,有时即使你的配置正确,它也会以某种方式缓存连接字符串,并使用你开发时的本地连接字符串,而不是配置中的连接字符串,在这种情况下,您需要删除默认的conn字符串,并重新编译/重新部署,以便强制它从app.config中提取。当您编写“app.config”时,它刚刚单击过。。。回答下面的问题。很高兴你把它分类了:)