2017-02-15 82 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”。