當試圖從網站訪問數據庫時,我一直收到錯誤,它返回一個錯誤,它找不到服務器或者它不可訪問。「在測試服務器上找不到服務器或不可用」,但在調試時沒有找到
現在我做了一個搜索,發現了很多可能的原因 - 我打開了命名管道,也做了this link建議(即將IP地址設置爲「啓用」),但我仍然收到錯誤。
Error SqlException: System.Data.SqlClient.SqlException (0x80131904): Error An error has occurred with the network or the occurrence when connecting to SQL Server. Can not find server or is not available. Verify that the instance name is correct and that the configuration of SQL Server allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) at
我還下載了this little app和我複製/粘貼在IIS用於該網站的web.config中的連接字符串和應用程序能夠連接和查詢同一數據庫由網站作爲目標。
而且,正如標題所說,當我在VS2010中進行調試時,這個錯誤完全缺失。從服務器啓動時可能導致此錯誤的原因是什麼?
編輯:連接字符串包含用戶名和密碼(它不是Windows身份驗證)。
如果您繼續遇到這種情況,可以採用一些可能的方法(a)在部署和測試之前實施一些詳細日誌記錄,或者(b)在服務器上安裝並運行Visual Studio Remote Debugger,並附加到該過程直接在服務器上進行調試。你下載的小應用程序,它可以直接連接到服務器的數據庫,對,而不是你的機器?這意味着你已經驗證了SQL服務器可以從你的Web服務器訪問? –
是的,應用程序在服務器上,並且在使用服務器使用的相同連接字符串時,它能夠查詢數據庫。 –
遠程調試器的時間。只有其他的東西我可以想到,這是如果你的應用程序使用Linq-To-Sql和生成的DataContext,有時甚至在你的配置正確的時候,它會以某種方式緩存連接字符串,並從你當時使用本地connectionString開發,而不是配置,你需要在這種情況下刪除默認的連接字符串,並重新編譯/重新部署,以強制它從app.config中拉。 –