12

Windows Azure で MVC4 Web アプリケーションをホストしようとしています。VS2012 MVC4 インターネット アプリケーション テンプレートを使用してテスト アプリを作成し、それにカスタム モデルとコントローラーを追加しました。

私はそれを Azure に公開し、「update-database」を取得して、Azure データベースに移行を適用することができました。

アプリをローカルで試してみると、Azure SQL データベースを使用して正常に動作します。ログイン/登録して、テスト コントローラーを使用できます。

アプリをオンラインで試すと、テスト コントローラーを使用できますが、ログインまたは登録リンクで次の例外が発生します。

Server Error in '/' Application.

The "WebSecurity.InitializeDatabaseConnection" method can be called only once.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.InvalidOperationException: The "WebSecurity.InitializeDatabaseConnection" method can be called only once.

Source Error: 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace: 


[InvalidOperationException: The "WebSecurity.InitializeDatabaseConnection" method can be called only once.]
   WebMatrix.WebData.WebSecurity.InitializeMembershipProvider(SimpleMembershipProvider simpleMembership, DatabaseConnectionInfo connect, String userTableName, String userIdColumn, String userNameColumn, Boolean createTables) +123
   WebMatrix.WebData.WebSecurity.InitializeProviders(DatabaseConnectionInfo connect, String userTableName, String userIdColumn, String userNameColumn, Boolean autoCreateTables) +51
   WebMatrix.WebData.WebSecurity.InitializeDatabaseConnection(String connectionStringName, String userTableName, String userIdColumn, String userNameColumn, Boolean autoCreateTables) +52
   MembershipTest2.Filters.SimpleMembershipInitializer..ctor() +193

それがどこから来たのか分かりますか?(ローカル バージョン) をデバッグする場合、このメソッドは 1 回だけ呼び出されます。

ありがとう。

4

3 に答える 3

17

そのメソッドへの呼び出しをカプセル化して、複数回呼び出されないようにすることができます

                if (!WebMatrix.WebData.WebSecurity.Initialized)
                {
                    WebSecurity.InitializeDatabaseConnection(...);
                }
于 2013-01-04T20:30:41.290 に答える
0

次の SO の議論は役に立ちましたか?

次の記事は、新しい MVC4 と EF をシンプル メンバーシップ プロバイダーと一緒に使用するのに大いに役立っていることがわかりました。まだ読んでいない場合は、ぜひご覧ください。

SimpleMembership、メンバーシップ プロバイダー、ユニバーサル プロバイダー、および新しい ASP.NET 4.5 Web フォームと ASP.NET MVC 4 テンプレート

于 2012-12-20T20:11:17.100 に答える