我们在云上部署的应用程序版本面临一些问题.
我们的应用程序是一个带有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数据库,没有任何例外.但是,使用相同的连接字符串在云上部署时,相同的应用程序会给我上述错误.
你能帮我们修理一下吗?
我有以下代码:
var test = new FallEnvironmentalCondition[] {
new FallEnvironmentalCondition {Id=40,FallId=3,EnvironmentalConditionId=1},
new FallEnvironmentalCondition {Id=41,FallId=3,EnvironmentalConditionId=2},
new FallEnvironmentalCondition {Id=42,FallId=3,EnvironmentalConditionId=3}
};
test.ToList().ForEach(async x => await conn.UpdateAsync(x));
Run Code Online (Sandbox Code Playgroud)
我得到了
InvalidOperationException:连接不支持MultipleActiveResultSets
我不明白我await正在进行每次更新,所以为什么我会收到此错误.
注意:我无法控制连接字符串,因此无法打开MARS.