那是个可怕的标题,对不起。
以下是场景:
4台服务器中有3台工作正常。
在第四台服务器上我们得到了这个
建立数据库时出错 找不到或无法访问。 验证实例名称是否正确 正确,并且SQL Server 配置为允许远程 提供程序,错误:40-无法打开
第一次使用我的linqdatacontext执行查询时抛出异常。
在有问题的服务器上,我可以使用与machine.config中的凭据相同的sqlmanagementstudio进行连接。我还编写了一个简单的命令行客户机,它使用相同的连接字符串与数据库服务器进行ADO.NET连接。它起作用了。
相同的代码部署到所有4台服务器,配置相同。
是什么原因导致只有一台服务器上的客户机抛出此错误?
我已经尽我所能排除了常见的嫌疑(防火墙阻止的端口、SQL Server上未启用的远程访问、使用已命名的SQL实例等)。我还检查了我的代码或配置层次结构中的其他地方是否有硬编码的连接字符串。据我所知这不是原因。
认为 因为它与数据库服务器在不同的网络(或网段)上。
所以我很高兴它能工作,但有点不舒服,因为我没有完全理解导致它的根本问题。