2017-03-23 163 views
3

我剛剛安裝了Visual Studio 2017社區。我正在開始一個新的ASP.net WebForms C#項目,但我的連接字符串有問題。這是我迄今所做: 創造了個人用戶的WebForms應用程序帳戶 改變了web.config文件中DefaultConnection到Visual Studio 2017連接字符串無法連接到服務器

<connectionStrings> 
<add name="DefaultConnection" connectionString="Data Source=s13.example.com;Initial Catalog=DB_9;User ID=DB_9_user;Password=myPwd;Integrated Security=False;" 
    providerName="System.Data.SqlClient" /> 

然後我添加一個SqlDataSource和嘗試使用DefaultConnection ,但出現以下錯誤:

Database schema could not be retrieved for this connection. Please make sure the connection settings are correct and that the database is online.
Failed to retrieve data for this request.
Failed to connect to server (local).
Login failed for user 'DB_9_user'.

接下來,驗證服務器,用戶名和密碼是否正確。我在Sql Server Management Studio 2012中使用相同的憑據成功連接到數據庫。所以接下來,我用Visual Studio 2013 Professional關閉了我的舊電腦,並在那裏重新創建了這個項目。在改變連接字符串並在SqlDataSource控件中使用它時完全沒有問題。 VS 2017 Community Edition有什麼不同,阻止了我連接數據庫的能力?

回答

1

我沒有一個完整的解決方案,但我注意到有兩件事情可以幫助:

  1. Failed to connect to server (local)

    這不是在連接字符串中提到的服務器。這意味着它正在尋找本地工作站上的數據庫服務器。你確定它是使用正確的對象,還是正確的字符串?

  2. s13.example.com

    這有點嚇人,因爲它看起來像一個公共地址。您是否試圖通過互聯網直接連接到生產主機?這不好。通常情況下,數據庫服務器不能直接訪問外部世界。 Web服務器將位於DMZ中,外部用戶可以訪問Web服務器,Web服務器可以訪問內部的DB服務器,但外部用戶無法直接訪問DB服務器。對於非常小的站點,它們可能是機器,但這些規則仍應由防火牆執行:不允許公開訪問數據庫。對於開發,您需要處理數據庫的私人副本,而不是在線託管。

+0

。 無法檢索此請求的數據。 無法連接到服務器(本地)。 用戶'testdb'登錄失敗。 –

0

以下添加到您的連接字符串:

Persist Security Info=True; 

這爲我工作。

0

這是我對這個問題的解決方法。在Visual Studio中,工具 - >連接到數據庫。使用與連接字符串相同的憑據和服務器名稱。然後,當您開始創建新的數據源時,請選擇SQL數據庫作爲數據源類型。當您選擇您的數據連接時,您之前創建的連接應可用於選擇而不是使用連接字符串。這將創建一個新的連接字符串,並將添加到您的web.config文件。這應該看起來完全像你以前的連接字符串。如果您選擇介意使用舊連接字符串更新任何內容,則可以用此替換舊連接字符串。

0

在連接字符串中使用Persist Security Info=True;。 如果您嘗試使用vs IDE中的服務器資源管理器或對象資源管理器進行連接,請在添加新的數據庫連接時選中「保存我的密碼」複選框。

相關問題