【问题标题】:ASP.net can't connect to SQL Server after being deployed to hosting siteASP.net 部署到托管站点后无法连接到 SQL Server
【发布时间】:2016-07-14 20:36:50
【问题描述】:

我正在开发一个 ASP.net Web 应用程序。 我的默认页面是一个简单的登录屏幕。 我正在使用 Visual Studio 开发应用程序。

它将使用 Visual Studio 运行,当数据输入到文本框并单击按钮时,它会将请求发送到我自己的运行 Windows Server 2012 并安装了 SQL Server 2014 的服务器。 我还将提到,ASP 应用程序被创建为 Android 应用程序的辅助应用程序。 Android 应用程序通过 Internet 连接使用相同的数据库,因此我知道服务器和 SQL 服务器都可以接受读取和写入调用。

我已经使用 WebClient 调用连接到数据库的 php 文件(这适用于 Android)以及 OracleClient 和 SQLClient 调用所有这些从我的工作站上的 Visual Studio 到服务器计算机的调用来测试 ASP 应用程序。这些都可以很好地从数据库发送和接收数据。

问题是,一旦我将应用程序部署到我的托管站点,调用似乎不再起作用。默认登录页面打开,但在尝试登录后我收到如下错误:

异常详情:System.ComponentModel.Win32Exception:无法建立连接,因为目标机器主动拒绝

[Win32Exception (0x80004005): 由于目标机器主动拒绝,无法建立连接]

[SqlException (0x80131904):建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。

谁能帮我解决这个问题?

【问题讨论】:

  • 能否再次检查您的连接字符串?从报错信息看,说明你的连接字符串不正确。
  • @DouglasThomas 连接字符串很好。正如 Matt Perrys 下所写,答案是我的托管包中的一个块,它不允许我连接到外部数据库。现在一切正常。还是谢谢。
  • 很高兴听到这个消息.... :)

标签: asp.net sql-server webforms


【解决方案1】:

听起来您的数据库正在接受来自某些客户端的连接,但不是您的托管服务器。我会尝试直接从托管服务器测试 SQL 连接,看看测试连接是否成功。如果你可以让它工作,它应该可以从网络服务器上工作。

这篇关于创建空的 TestConnection.udl 文件的文章Quick ways to test OLE DB Connection String 会有所帮助。通过数据链接属性 UI 可以更轻松地尝试不同的连接字符串设置。当你保存文件时,如果你在文本编辑器中打开它,你可以看到连接字符串(假设它是成功的)。

如果连接字符串没有问题,请检查您是否有防火墙阻止 Windows 2012 和 SQL 服务器之间的连接。它可能是任何一台机器上的寡妇防火墙,也可能是网络级别的另一个防火墙。

【讨论】:

  • 感谢@MattPerry 的回复。我测试了多台机器的连接并使用数据链接属性。我还关闭了两台机器上的防火墙。事实证明,我的托管包不允许使用任何类型的外部数据库。因此,唯一的选择是将 ASP 托管在数据库服务器之外或将数据库迁移到托管服务器。希望这对遇到此问题的其他人有用
猜你喜欢
  • 1970-01-01
  • 2019-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-17
  • 2014-12-20
  • 2019-02-09
  • 2016-05-24
相关资源
最近更新 更多