无法连接到sql server框

时间:2013-02-28 05:25:45

标签: asp.net sql-server firewall telnet

我正在尝试连接到防火墙后面的SQL Server数据库。 DMZ中的asp.net应用程序尝试连接到数据库,但是我收到错误( webapp在本地计算机上工作正常):

enter image description here

当我telnet:

open 0.0.0.0 1433

它说:

Connecting to 0.0.0.0 ...
Connection to host lost

这是否意味着防火墙阻止了传入的请求?或者这是别的吗? (IT支持向我保证端口是开放的)

连接字符串:

data source=0.0.0.0; initial catalog=mydb;user id=xxxx;password=xxxx;persist security info=True;packet size=4096;

2 个答案:

答案 0 :(得分:0)

在ASP服务器上创建一个新的UDL文件。打开UDL文件,使用该界面成功连接到SQL服务器并保存文件。在文本编辑器中打开UDL文件,并将连接字符串复制到应用程序中。

答案 1 :(得分:0)

如果您的sql server位于防火墙后面(这是一件好事),那么您的Web应用程序不应该直接连接到它。相反,它应该通过某种服务层。这可以通过不同技术以各种方式实现。此服务应位于可以访问数据库的计算机上,并且不应允许Web服务器直接连接到数据库计算机(或群集)。

所以,说到这里,让我们解决你的连接字符串。尝试添加'integrated security = true'。这是一个例子:

<connectionStrings>
    <add name="ConnStringDb1" connectionString="Data Source=MY_SERVER_NAME_OR_IP;Initial Catalog=MyDataBaseName;Integrated Security=True;" providerName="System.Data.SqlClient" />
  </connectionStrings>

同样,重要的是要注意Web应用程序本身应该只调用此服务层(可能是WCF,或者可能是COM组件),而不是直接连接到数据访问层。关于如何设计这些类型的应用程序有很多样本。这是一个希望可以帮助的人。 http://www.c-sharpcorner.com/UploadFile/SukeshMarla/3-tier-architecture-using-Asp-Net/。祝你好运。