1

我正在尝试连接到防火墙后面的 SQL Server 数据库。DMZ 中的 asp.net 应用程序尝试连接到数据库,但是我收到一个错误(该 webapp 在我的本地机器上运行良好):

在此处输入图像描述

当我远程登录时:

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;
4

2 回答 2

0

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

于 2013-02-28T10:12:48.333 回答
0

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

因此,话虽如此,让我们解决您的连接字符串。尝试添加“集成安全 = true”。这是一个例子:

<连接字符串>
    <add name="ConnStringDb1" connectionString="数据源=MY_SERVER_NAME_OR_IP;初始目录=MyDataBaseName;集成安全=True;" providerName="System.Data.SqlClient" />
  </connectionStrings>

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

于 2013-02-28T13:34:52.830 回答