网站部署到 IIS 并连接到 SQL Server 2012 时出现问题,出现找不到网络错误

Posted

技术标签:

【中文标题】网站部署到 IIS 并连接到 SQL Server 2012 时出现问题,出现找不到网络错误【英文标题】:Issue with website deployed to IIS and connecting to SQL Server 2012, getting network not found error 【发布时间】:2017-06-09 14:33:49 【问题描述】:

我已经在 IIS 上部署了一个网站,它正在尝试通过连接字符串访问数据库。

我的 SQL Server 和连接字符串是正确的,因为我已通过以下方式对其进行了测试:

    我的开发环境正确地流式传输数据 从 SQL Server Management Studio 可以看出,与 SQL Server 的连接良好 已部署的网站的其他页面是正确的,只有那些流数据的页面出现故障。

问题是只有通过 IIS 网站才会出现这个错误,当我从 Visual Studio 运行它时,一切正常。

这是我得到的堆栈代码:

Stack trace error

我的连接字符串:

<add name="cnnSQLDB" 
     connectionString="server=**********;database=*********;Integrated Security=True;User ID=******;Password=******;" 
     providerName="System.Data.SqlClient"/>

【问题讨论】:

对我来说听起来像是防火墙问题。你能从你的网络服务器ping sql 服务器吗? sql server 的端口是否开放? SQL Server 端口是否打开?需要打开端口 1433 以便 SQL 流量通过。 我认为您的连接字符串是错误的,同时使用了集成安全性并提供了用户名和密码。查看connectionstrings.com/sql-server @SeanLange 是的,我可以从我的 Web 服务器 ping sql 服务器。我测试的方法是我使用了以下命令'telnet servername 1433',但我收到了一条空白消息。是不是意味着1433端口可用并且开放了? @DavidLibido 它与连接字符串无关,因为我之前检查过这个链接,它根本无法在开发环境中工作。 【参考方案1】:

确保在您的防火墙上打开端口 1433。那是 SQL Server 使用的端口。

【讨论】:

我测试的方法是我使用了以下命令 'telnet 1433' 并收到以下消息...无法在端口 23 上打开与主机的连接:连接失败。 使用的语法是:telnet sqlservername 1433 @seagulledge 当我尝试使用“telnet sqlservername 1433”时,我得到一个空白屏幕,这意味着端口已为 sql 连接打开。会不会是防火墙阻塞了请求?【参考方案2】:

我能够根据此处提供的提示解决此问题。我必须进行以下更改:

    更新 SQL 连接字符串并设置“Integrated security=false”。这样,它将使用 SQL 连接字符串中提供的登录凭据。 按照 SQL 连接字符串中的规定创建一个新用户并授予必要的访问权限。 当我将数据库从生产环境复制到新环境时,连接字符串中提到的用户的 GRANT 权限没有更新。

但是通过命令“sp_readerrorlog”检查端口状态给了我线索并引导我找到解决方案。其他一些对我有帮助的链接是:this 和 this

【讨论】:

很高兴你知道了。

以上是关于网站部署到 IIS 并连接到 SQL Server 2012 时出现问题,出现找不到网络错误的主要内容,如果未能解决你的问题,请参考以下文章

windows server 2012 r2 iis8.5 部署 asp.net 网站

是否可以将 Spring Boot 应用程序部署到 App Engine 并连接到数据库?

IIS无法使用SQL Server身份验证连接到SQL Server

将 SQL CE 4 部署到 IIS 7 - 需要特殊权限?

Web Server 在iis下部署php网站在iis下

WCF / EF / SQL Server / VS2017 / C#:多层应用程序在部署到本地 IIS 10.0 作为托管服务器时出错