簡體   English   中英

從IIS連接到SQL Server

[英]Connection to SQL Server from IIS

我有兩台Windows Server 2012計算機。 它們都是我創建的域的一部分。 一個是Web服務器,另一個是托管SQL Server 2012的數據庫服務器。通過Web服務器,我可以使用MSSMS建立與DB服務器的連接,但是從我編寫的托管在IIS中的應用程序中,我無法建立連接。 我收到以下錯誤:

A network-related or instance-specific error occurred while establishing a connection to SQL Server. 
The server was not found or was not accessible. 
Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)

我已經驗證SQL Server允許遠程連接。

我已經驗證它正在使用TCP / IP協議。

我嘗試完全限定SQL Server計算機名稱以包括name.domain.com。

我能夠ping通SQL Server沒問題。

正如我已經說過的,我可以使用計算機名和IP地址從MSSMS建立連接,而不會出現問題。

此時,我已經關閉了兩台計算機上的Windows防火牆,並添加了打開以下端口的規則:

TPC / IP-135、1433、1434、2382、2383、4022

UDP-1434

我什至向公眾開放了港口,以防萬一。

在我的應用程序中,我有一個靜態類,該類為我提供了連接信息。 看起來像這樣:

    static public class _ConnectionData
{
    public static string Source = "192.168.0.33"
    public static string Catalog = "dbCat";
    public static string User = "dbCatUser";
    public static string Password = "**********";
    public static string ConnectString
    {
        get { return "Data Source=" + Source + "; Integrated Security=false; Initial Catalog=" + Catalog + "; User ID=" + User + "; Password=" + Password; }
    }
}

我只需在inetpub \\ wwwroot下復制應用程序目錄,然后在IIS admin中將其轉換為應用程序,即可在IIS中設置虛擬目錄。

我現在不知所措。 從IIS托管應用程序中獲取連接是否需要做一些特別的事情? 我需要在連接字符串中指定一個提供程序嗎? IIS中是否需要設置特殊權限? 我的appPool設置為“集成”,對嗎?

我已經禿頂了,所以在這一點上我不確定我會拔出什么,也許是腋窩發。

錯誤26有兩個主要原因。 1)SQL SERVER(XXX)服務未啟動,2)連接字符串無效。 在您的方案中,原因1可能不正確,因為您說可以使用SSMS連接到Sql Server。 因此剩下的唯一原因就是原因2。您需要檢查連接字符串。 為此,請使用以下鏈接驗證您的連接字符串:

這里

另外,當您不需要使用Windows身份驗證模式時,也不需要指定Integrated Security = false。

因此,事實證明,我對.Net頁面使用了錯誤的頁面指令(對我而言)。 我習慣於使用src屬性而不是codebehind屬性。 只要.cs文件更改,就可以使用src屬性重新編譯該類。 .net具有codebehind屬性,它首先在dll中查找(我認為)。 由於我的連接信息被直接編碼為靜態類,因此無需重新編譯,因此它從未看到我所做的任何更改。 我將Vahid的答案標記為正確,因為那是連接字符串仍然是錯誤的,我只是不知道。

我通過將連接信息移至web.config並將其讀取為靜態類變量(如果為空)來解決此問題。

我要感謝所有幫助我解決此問題的人。 非常感謝。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM