我们在云应用程序的部署版本上面临一些问题。
我们的应用程序是一个带有ADO .NET实体框架的ASP.NET MVC 3项目。
根据msdn博客,我们需要在我们正确完成的数据库连接字符串中添加参数“MultipleActiveResultSets = True”(用于SQL azure的实体框架)。
从我们的应用程序执行数据库查询时,我们得到以下异常:“已经有一个与此Command关联的开放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>
我可以使用本地部署的应用程序的上述连接字符串连接到SQL Azure数据库,没有任何例外。但是使用相同的连接字符串在云上部署相同的应用程序会给我上面提到的错误。
你能帮我们修好吗?
解决方法
我刚刚遇到同样的问题。我已经尝试在Web.config连接中设置“MultipleActiveResultSets = True” – 没有结果。 最后,我通过在Azure Dashboard手动编辑Connection字符串来解决问题,在“配置”选项卡中有“连接字符串”设置,您应该手动添加“MultipleActiveResultSets = True;”串。 在做完之后,我已经完成了MARS的工作。