无法从IIS应用程序访问不同子网上的数据库

时间:2014-10-29 16:18:41

标签: sql-server iis networking

我在DMZ中的网络服务器位于与受信任网络不同的VLAN和子网上。此Web服务器必须与受信任网络上的数据库服务器通信,因此已应用适当的防火墙规则。我可以使用PowerShell并使用ODBC数据源管理器管理单元从Web服务器连接到数据库。但是,运行IIS应用程序会引发以下错误:

建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (提供程序:SQL网络接口,错误:26 - 查找指定的服务器/实例时出错)内部异常: 来源:.Net SqlClient数据提供者

我在IIS应用程序的web.config文件中使用相同的连接字符串作为我在powershell中使用的连接字符串,它连接没有任何问题。这是来自web.config的连接字符串:

"Data Source=192.168.1.xxx\SQLExpress;Database=mydb;uid=myuserid;password=mypassword;integrated security=false;" 

powershell连接字符串的唯一区别是我没有指定提供者。如果我将其从web.config中删除,则没有区别。

我甚至已禁用两台服务器上的所有防火墙以进行测试,但仍会出现相同的错误。

当从Web服务器到数据库服务器的ping和tracert成功完成并且我能够通过powershell和ODBC数据源管理器连接时,我不知道为什么IIS应用程序无法连接。

1 个答案:

答案 0 :(得分:0)

是否为数据库实例启用了TCP / IP协议?

在安装了数据库实例的计算机上,转到开始 - > MS SQL Server 20XX - >配置工具 - > SQL Server配置管理器。

进入' SQL Server网络配置' - > ' SQLExpress的协议'。检查TCP / IP是否已启用(默认情况下已禁用)。

相关问题