0

我们有一个运行在托管公司的 Web 服务器上的 asp.net 3.5 Web 应用程序,该服务器具有非常严格的防火墙设置。Web 应用程序与我们位于完全不同的网络上的 sql server express 2005 通信。

问题是,当 Web 应用程序在端口 1433 上连接到我们的 sql 服务器时,Web 应用程序会向我们的 sql 服务器发送一个随机端口号来连接。因此,Web 应用程序无法连接到我们的 sql 服务器,因为它们必须打开整个范围他们不准备做的防​​火墙上的端口号。

我的问题如下。您可以在连接字符串或 web.config 中的某处指定客户端发送到 sql server 以连接回的端口吗?

谢谢

4

3 回答 3

1

如果我没听错的话,你想做一些违背 TCP/IP 端口处理应该如何工作的事情。

您希望 Web 应用程序在连接到 SQL 服务器时始终使用相同的端口?这意味着您在任何给定时间只能打开一个连接,因此在任何给定时间只能打开一个用户。客户端应该从“随机”端口与服务器通信。这是网络的基础。至少我是怎么学的。

我不确定您是否甚至可以强制它每次都使用相同的端口,即使您可以,我也会建议您不要这样做。

我会说问题是防火墙,而不是您的应用程序。我可以理解 SQL 服务器只想与您的站点所在的 IP 地址通信,但它不应该真正关心客户端想要通过哪个端口进行通信(类似于 [website-ip]:* -> [sql -ip]:1433)。对我来说,似乎曾经设置过防火墙的人有某种疯狂的防火墙想法,但也许这只是我。

于 2009-03-06T07:52:00.133 回答
0

您的 SQL Server Express 是否可以配置为侦听动态端口?如果“TCP 动态端口”的值为 0,我认为即使您配置了特定端口,它也是动态的。该值应完全清除。

于 2009-03-06T07:36:28.627 回答
0

如果您使用 TCP/IP,您可以指定端口。

例如:

Data Source=190.190.200.100,1433;Network Library=DBMSSOCN;Initial Catalog=myDataBase;User ID=myUsername;Password=myPassword;

其中 DBMSSOCN=TCP/IP

于 2010-07-18T16:42:50.110 回答