为什么我不能通过公共IP将我的网站连接到另一台计算机上托管的SQL Server数据库

时间:2014-03-31 16:52:57

标签: sql-server asp.net-mvc database-connection connection-string

我有一个托管在共享服务器上的网站,我在服务器上设置了允许远程连接,并且还打开了允许远程连接。

此外,我已关闭防火墙。

我能够通过我们的静态IP和端口从不在我们网络上的不同计算机上从SQL Server Management Studio登录到我的SQL Server,以及当我在本地主机上运行我的网站时,

但是当我将我们的网站发布到我们的托管服务器时,它将无法连接到我们的数据库并返回错误:

  

[Win32Exception(0x80004005):尝试以其访问权限禁止的方式访问套接字] [SqlException(0x80131904):建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (提供者:TCP提供者,错误:0 - 试图以其访问权限禁止的方式访问套接字。)]

这是我们的连接字符串

Data Source=000.000.00.00,12341;Integrated Security=False; 
  User ID=myUserNmae;password=myPassword;Initial Catalog=dBaseName; 

这里还有什么可能是错的?

2 个答案:

答案 0 :(得分:0)

您可能需要打开程序,而不是(简单地)打开端口

http://technet.microsoft.com/en-us/library/cc646023.aspx

To add a program exception to the firewall using the Windows Firewall item in Control Panel.

    On the Exceptions tab of the Windows Firewall item in Control Panel, click Add a program.

    Browse to the location of the instance of SQL Server that you want to allow through the firewall, for example C:\Program Files\Microsoft SQL Server\MSSQL11.<instance_name>\MSSQL\Binn, select sqlservr.exe, and then click Open.

    Click OK.

您需要特别阅读“动态端口”

http://technet.microsoft.com/en-us/library/cc646023.aspx#BKMK_dynamic_ports

你可以尝试:

Data Source=127.0.0.1,12341;Integrated Security=False; 
  User ID=myUserNmae;password=myPassword;Initial Catalog=dBaseName; 

机器是否有内部和外部IP? Aka,您可能必须使用内部IP(实际的,而不仅仅是127.0.0.1)作为连接字符串中的IP地址。

答案 1 :(得分:0)

如果您也可能遇到此问题,请全部更新。

我的网站由hostgator作为共享主机托管,他们声称为了安全起见,他们只允许通过端口1433进行sql流量,这是sql的默认端口... 希望这能帮助将来的某个人