2013-02-28 221 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/。祝你好運。