簡體   English   中英

服務器無法連接到SQL Server

[英]Server cannot connect to SQL server

我有一個C#服務項目,在這里我要連接到SQL並檢索數據。 當我在本地調試時,例如:在Visual Studion開發服務器中,它可以很好地工作。 但是,當我上傳到服務器時(僅是localhost / MyProject /),SqlCommand()會引發異常。 有沒有辦法獲得有關SqlCommand()的更多信息? 我應該設置什么權限才能在服務器上運行Web服務?

可能的模式詳細信息:VS2008環境中的項目很好用:

http:// localhost:50301 / GetJpeg.aspx?ra = 224.5941&dec = -1.09&width = 1000&height = 1000&scale = 1

但在http://localhost/GetJpeg.aspx?ra = 224.5941&dec = -1.09&width = 1000&height = 1000&scale = 1上沒有。

異常並不是真正的異常:

在第二種情況下, SqlDataReader reader不返回任何結果:

reader = cmdCenter.ExecuteReader();
                if (reader.Read()) 
                {
                    //Do Something

                    reader.Close(); 
                }                               
                else 
                {                   
                    throw new Exception("Request is failed");

                }

謝謝阿曼。

編輯僅供參考:在一種情況下,代碼是通過ASP.NET Developement Server調試的,第二種是在IIS 7.0上運行的

更新

深入研究后,我發現:連接已打開並已連接,通常的查詢都可以,但是具有存儲功能的查詢失敗了……這可能是IIS缺少配置嗎?

如果您使用的是SqlCommand控件(拖放到頁面上)而不是SqlCommand對象(代碼),則最好的選擇是添加頁面級錯誤處理程序(http://msdn.microsoft.com/zh-我們/library/ed577840.aspx)。

問題很可能是您的連接字符串使用SSPI對SQL Server進行身份驗證(集成/域安全性)。 這樣一來,您就可以通過Visual Studio進行連接,但是一旦部署就不能進行連接。 您可能想看一下這篇文章(http://msdn.microsoft.com/en-us/library/bsz5788z.aspx)。 那篇文章中的答案並不理想,但是它們會使您前進。 更好的方法可能會變得非常復雜。 一旦您的應用重新運行,請仔細閱讀這些內容。

您可以將VS中的調試器附加到框上的IIS,然后繼續進行調試。 為此,請轉到“調試”->“附加到進程”,然后找到正在運行應用程序池的W3wp.exe進程。

try
{
    using (SqlConnection connection = new SqlConnection("Your connection string here"))
    {
        using (SqlCommand command = new SqlCommand("your sql here", connection))
        {
            connection.Open();
            using (SqlDataReader reader = command.ExecuteReader())
            {
            }
        }
    }
}
catch (Exception exception)
{
    System.Diagnostics.Debug.WriteLine(exception);
}

捕獲中的斷點以查看調試器中的異常。

暫無
暫無

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

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