クラウド上にデプロイされたアプリケーションのバージョンでいくつかの問題に直面しています。
このアプリケーションは、ADO .NET Entity Framework を使用した ASP.NET MVC 3 プロジェクトです。
msdn ブログによると、データベース接続文字列にパラメーター 'MultipleActiveResultSets=True' (SQL azure を使用する Entity Framework の場合) を追加する必要がありますが、これは正しく行いました。
アプリケーションからデータベース クエリを実行しているときに、次の例外が発生します。「このコマンドに関連付けられている 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 データベースに接続できます。しかし、同じ接続文字列を使用してクラウドにデプロイされた同じアプリケーションで、上記のエラーが発生します。
同じ問題を解決するのを手伝ってくれませんか?