[英]Server cannot connect to SQL server
我有一個C#服務項目,在這里我要連接到SQL並檢索數據。 當我在本地調試時,例如:在Visual Studion開發服務器中,它可以很好地工作。 但是,當我上傳到服務器時(僅是localhost / MyProject /),SqlCommand()會引發異常。 有沒有辦法獲得有關SqlCommand()的更多信息? 我應該設置什么權限才能在服務器上運行Web服務?
可能的模式詳細信息:VS2008環境中的項目很好用:
但在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.