2017-02-15 173 views
1

我試圖從在MS Azure中託管在Visual Studio中創建的2013年「MultipleActiveResultsSets」關鍵字不支持

我已經存儲在連接字符串的SQL Server數據庫,通過ASP.NET WebForms的網站看在Web.Config中,並在我的Code-Behind中引用它。

但是,當我嘗試在本地運行Default.aspx時,會顯示this錯誤。

這裏是我的web.config:

<connectionStrings> 
    <add name="FYPConnectionString1" 
    connectionString="Data Source=damo.database.windows.net‌​;Initial Catalog=Ballinora_db;   
    Persist Security Info=True; User ID={Username};Password={Password};" /> 
    </connectionStrings> 

我刪除「MultipleActiveResultsSets =假」,從連接字符串,看看是否錯誤而停止,而是錯誤現在顯示爲「加密」。

所以錯誤出現在連接字符串的密碼部分之後的下一項。 密碼與問題有關嗎?

另外,這個用戶名和密碼是必需的,他們是出現在Azure門戶中的服務器管理員登錄詳細信息嗎?

這裏是代碼隱藏也:

private void bindRepeater() 
{ 
    string constr = ConfigurationManager.ConnectionStrings["FYPConnectionString1"].ConnectionString; 
    //-- assuming Azure connection string stored in ConnectionString config in Web.Config as YourConnString 
    using (SqlConnection con = new SqlConnection(constr)) 
    { 
     using (SqlCommand cmd = new SqlCommand("SELECT Name FROM Users", con)) 
     { 
      cmd.CommandType = CommandType.Text; 
      con.Open(); 
      SqlDataAdapter sda = new SqlDataAdapter(cmd); 
      DataTable dt = new DataTable(); 
      sda.Fill(dt); 
      repTest.DataSource = dt; 
      repTest.DataBind(); 
      con.Close(); 
     } 
    } 
} 

protected void btnDisplay_Click(object sender, EventArgs e) 
{ 
    this.bindRepeater(); 
} 
+0

你好,我也使用SQL數據庫的Azure雲服務器。我更新了我的答案。請參閱此問題帖子右側的「相關」。你有一些類似的情況。這裏也是鏈接。 1)http://stackoverflow.com/questions/1404268/keyword-not-supported-data-source?rq=1 2)http://stackoverflow.com/questions/9236554/keyword-not-supported-name?rq = 1 –

+0

3)http://stackoverflow.com/questions/41647501/connectionstring-keyword-not-supported?rq=1 4)http://stackoverflow.com/questions/33599853/the-connection-does-not- support-multipleactiveresultsets-though-in-connec?rq = 1 5)http://stackoverflow.com/questions/41483766/databinding-keyword-not-supported-metadata?rq=1 –

回答

0

MultipleActiveRe sultSets的默認值爲False。

如果你不需要這個功能,只需跳出(刪除) 'MultipleActiveRe sultSets = False'的連接字符串。

因爲默認值爲false。如果你想要假,你不需要按意向書寫。

當我們在第一個SQL連接的SqlDataReader的循環中打開第二個SQL連接時,我們需要MultipleActiveRe sultSets的功能。

但是,爲什麼'MultipleActiveRe sultSets = False'被認爲是錯誤的語法仍然是問題。

更新-

這就是爲什麼我很好奇爲什麼它是錯的。我認爲MultipleActiveRe sultSets和Encrypt的語法沒有問題。

這是我在Web.Config中的connectionString:

<connectionStrings> 
    <add name="GreenLeaf" connectionString="Server=tcp:greentree.database.secure.windows.net,1433;Database=greentea;User [email protected];Password=abc123;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;MultipleActiveResultSets=True;"/> 
</connectionStrings> 

與你的不同之處,

1)TCP 2)安全 3)@greentree(具有ID的服務器名格林在一起像(綠色用戶@greentree) 4)無提供商

「安全」是Azure自動提供安全連接的新功能,您可以在Internet上找到有關此問題的信息。

檢查服務器的防火牆,只是試圖給出以上幾點。

使用管理員ID是正確的,但在安全性方面,您需要爲角色和權限有限的外部用戶創建其他登錄和用戶。

您可以通過Azure Portal連接到Azure服務器(數據庫)嗎?視覺工作室? Server Management Studio?

當您輸入服務器管理工​​作室,在彈出的連接, 有'服務器名稱'。在那裏輸入'greentree.database.windows.net'並嘗試使用管理員憑證登錄。

或者你可以連接到Azure服務器沒有在Web.Config中的connectionString,但在普通的代碼?

如果可能的話,請更新screencapture的異常,而不是僅文本。

最後,我確定你非常清楚,爲了安全起見,我們需要加密connectionString。

+0

Hi @Kay Lee,我刪除了來自連接字符串的MultipleActiveResultSets = False,但仍然出現相同的錯誤。但是,這次是_Encrypt_。因此,出於某種原因,在連接字符串中的密碼之後發生此錯誤。這是否提供任何額外的信息? – user7554035

+0

嗨,我現在將更新我的連接字符串看起來像你上面看看是否有效。我可以使用SQL Server身份驗證登錄名登錄到SQL Server Management Studio中的數據庫。但是,當我把這些相同的登錄細節放入我的連接字符串時,我得到那個錯誤 – user7554035

+0

好吧,利用由Visual Stuio或Server Management Studio自動生成的connectionString。並看看類似的情況。 –

0

您錯誤地輸入了「MultipleActiveResultsSets」。其中的「結果」不是複數。

正確的方法:「MultipleActiveResultSets」。