.NET Framework 4 プロジェクトで標準の VS 2012 MVC 4 インターネット テンプレートを使用しました。[Authorize] 属性で装飾されたアプリケーションの部分にアクセスするために、主に外部ログイン (Google、Microsoft、Facebook、Yahoo、Twitter) を使用していました。
[私が気づいたことの 1 つは、VS によって作成された既定の web.config には、ASP.NET Web フォーム アプリケーションで見られるものとは異なり、メンバーシップまたはロール プロバイダーに関するセクションが含まれていないことです。]
プロジェクトを azurewebsites.net サイトにデプロイしました。最初は問題なく動作していましたが、しばらく使用すると、アプリは例外をスローします。これは、サーバーのマシン構成ファイルをSqlMembershipProvider
使用して、 という接続文字列を使用してアクセスしようとしたためLocalSqlServer
です。
Q1: SqlMembershipProvider は SimpleMembership プロバイダーとどのように関連していますか?
とにかく、web.config に <membership> セクションを作成し、<clear/> を追加しました。SqlRoleProvider
これはその問題を解決しましたが、接続文字列を使用して machine.configにアクセスしようとしたため、別の問題が発生しましLocalSqlServer
た。<clear/> を含む <roleManager> セクションを web.config に追加しようとしましたが、うまくいきませんでした。defaultProvider が含まれていることを主張します。何を入れればいいですか?
Q2. .NET Framework 4.0 MVC 4 アプリケーションで SimpleMembership ロール プロバイダーに使用するアセンブリは何ですか?
私は試した:
System.Web.Security.SqlRoleProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
しかし、それは別の問題を引き起こしましたCould not find stored procedure 'dbo.aspnet_CheckSchemaVersion'
。aspnet_regsql.exe を実行する前に、次の質問をしたいと思います。
Q3: 標準アプリがしばらく正常に動作した後、SqlMembershipProvider と SqlRoleProvider を探し始めるのはなぜですか?
サーバーの設定をいじっている人はいますか?