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

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

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

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

问题是只有通过 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 它与连接字符串无关,因为我之前检查过这个链接,它根本无法在开发环境中工作。

标签: sql-server iis


【解决方案1】:

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

【讨论】:

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

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

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

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

【讨论】:

  • 很高兴你知道了。
猜你喜欢
  • 1970-01-01
  • 2020-08-22
  • 2020-03-09
  • 1970-01-01
  • 2018-11-15
  • 2020-07-30
  • 1970-01-01
  • 2021-10-03
  • 1970-01-01
相关资源
最近更新 更多