2013-02-28 160 views
1

我想连接到防火墙后面的SQL Server数据库。在asp.net应用程序是在DMZ尝试连接到数据库,但我得到一个错误(web应用程序工作正常,从我的本地机器):无法连接到SQL服务器框

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; 
+0

向我们展示您的连接字符串的消毒版本... – IrishChieftain 2013-02-28 05:34:59

+0

@IrishChieftain完成:) – Pindakaas 2013-02-28 05:51:36

+0

如何在SQL配置管理器中启用命名管道。然后,尝试使用机器/实例名称来连接... – SQLGuru 2013-02-28 05:57:36

回答

0

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

+0

尝试这仍然收到类似的错误 – Pindakaas 2013-02-28 22:54:44

0

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

所以,就这样说吧,我们来说说你的连接字符串。尝试添加“集成安全性= 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/。祝你好运。