SQL Azure +出现错误'已经有一个与此命令关联的开放DataReader ..',即使在设置'MultipleActiveResultSets = True'之后

Abh*_*nav 25 asp.net-mvc azure azure-sql-database

我们在云上部署的应用程序版本面临一些问题.

我们的应用程序是一个带有ADO .NET实体框架的ASP.NET MVC 3项目.

根据msdn博客,我们需要在我们正确完成的数据库连接字符串中添加参数'MultipleActiveResultSets = True'(对于带有SQL azure的实体框架).

从我们的应用程序执行数据库查询时,我们得到以下异常:''已经有一个与此命令关联的开放DataReader必须先关闭.",我猜这与'MultipleActiveResultSets = True'属性非常相关.

通过本地部署的数据库以及使用SQL azure数据库(在本地环境中),应用程序在本地环境中正常工作.

但是当我们部署云应用程序时,我们会得到上述错误.似乎没有从连接字符串中读取"MultipleActiveResultSets = True"属性.

我使用的连接字符串如下:

    <connectionStrings>
        <add name="#DBInstanceName#" connectionString="Data Source=tcp:#server#.database.windows.net,1433;Initial Catalog=#DBName#;User ID=”UserName#@#server#;Password=”#password#”;MultipleActiveResultSets=True" providerName="System.Data.SqlClient"/>
    </connectionStrings>
Run Code Online (Sandbox Code Playgroud)

我能够使用本地部署的应用程序中的上述连接字符串连接到SQL Azure数据库,没有任何例外.但是,使用相同的连接字符串在云上部署时,相同的应用程序会给我上述错误.

你能帮我们修理一下吗?

iri*_*ium 44

我刚刚遇到同样的问题.我已经尝试在Web.config连接中设置"MultipleActiveResultSets = True" - 没有结果.最后,我通过直接在Azure Dashboard上为网站手动编辑连接字符串解决了问题 - 在"配置"选项卡中有"连接字符串"设置,您应该手动添加"MultipleActiveResultSets = True;" 串.在做完之后我终于让MARS工作了.

  • 编辑连接字符串后还需要重新启动网站. (2认同)

Gen*_*gen 12

或者,您可以在连接字符串中添加"MultipleActiveResultSets = true",并在Visual Studio中使用"发布"功能时更新目标web.config.确保选择"在运行时使用此连接字符串(更新目标web.config)".在此输入图像描述


pap*_*zzo 0

尝试在代码中分配 MultipleActiveResultSets。是未读还是不起作用?

SqlConnectionStringBuilder.MultipleActiveResultSets