最近、ローカルで使用していた SQL Server Express データベースを SQL Server 2012 Developer にアップグレードしました。このエラーが発生し始めました。クイック検索で大量の投稿が表示されますが、その答えはUser Instance=True;
接続文字列から削除することであると思われます。
確認したところ、どの接続文字列にもこのフラグがありません。念のために「ユーザーインスタンス」のソリューション全体を検索してみましたが、どこにも表示されません。二重に奇妙なのは、このエラーがすぐに発生しないことです。データベースへの最初の数回の呼び出しは機能します...
他の誰かが同様の経験をしましたか?
エラーの原因となっている正確なコードは次のとおりです。
public class BetterAuthorizeAttribute : AuthorizeAttribute
{
public override void OnAuthorization(System.Web.Mvc.AuthorizationContext filterContext)
{
var roleList = Roles.Split(',');
//if the user is in one of the roles in the list
foreach (string r in roleList)
{
if (filterContext.HttpContext.User.Identity.IsAuthenticated)
{
//The error is consistently thrown here the second time this line
//executes...
if (filterContext.HttpContext.User.IsInRole(r.Trim()))
{
関連すると思われる構成セクションは次のとおりです。
<connectionStrings>
<add name="BioSphereContext"
providerName="System.Data.SqlClient"
connectionString="Server=fake;Database=fake;User ID=fake;Password=fake;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;MultipleActiveResultSets=true;" />
</connectionStrings>
.
.
.
<sessionState mode="InProc" customProvider="DefaultSessionProvider" timeout="15">
<providers>
<add name="DefaultSessionProvider"
type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
connectionStringName="DefaultConnection" applicationName="/" />
</providers>
</sessionState>
.
.
.
<entityFramework>
<defaultConnectionFactory
type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework">
<parameters>
<parameter value="Data Source=.\SQLEXPRESS; Integrated Security=True; MultipleActiveResultSets=True" />
</parameters>
</defaultConnectionFactory>
</entityFramework>
それが役立つ場合に備えて、私のプロジェクトに関するいくつかの詳細...
- VS 2012
- エンティティ フレームワーク 5
- Azure SDK 2.0
- ASP.NET MVC 3
- .net 4.5