我正在开发一个ASP.net Web应用程序。 我的默认页面是一个简单的登录屏幕。 我正在使用Visual Studio开发应用程序。
它将使用Visual Studio运行,当数据输入到文本框并单击按钮时,它会将请求发送到我自己的运行Windows Server 2012且安装了SQL Server 2014的服务器。 我还要提到ASP应用程序是作为Android应用程序的辅助应用程序创建的。 Android应用程序通过Internet连接使用相同的数据库,因此我知道服务器和SQL服务器都可以接受读写调用。
我已经使用WebClient调用连接到数据库的php文件(这适用于Android)以及OracleClient和SQLClient调用ASP应用程序,所有这些调用都在我的工作站上的Visual Studio到服务器机器上运行。这些都可以很好地从数据库发送和接收数据。
问题是,一旦我将应用程序部署到我的托管站点,呼叫似乎不再起作用。将打开默认登录页面,但在尝试登录后,我收到错误,如下所示:
异常详细信息:System.ComponentModel.Win32Exception:无法建立连接,因为目标计算机主动拒绝它
[Win32Exception(0x80004005):无法建立连接,因为目标计算机主动拒绝了它]
[SqlException(0x80131904):建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。
任何人都可以帮我吗?
答案 0 :(得分:0)
听起来您的数据库正在接受来自某些客户端的连接,但不接受您的托管服务器。我会尝试直接从托管服务器测试SQL连接,看看测试连接是否可以成功。如果你可以使用它,它应该可以在Web服务器上运行。
有关创建空TestConnection.udl文件的本文Quick ways to test OLE DB Connection String将会很有帮助。通过数据链接属性UI更容易尝试不同的连接字符串设置。保存文件时,如果在文本编辑器中打开它,可以看到连接字符串(假设它成功)。
如果连接字符串不存在问题,请检查您是否在Windows 2012和SQL服务器之间没有阻止连接的防火墙。它可能是任何一台机器上的寡妇防火墙,也可能是网络级别的另一台防火墙。