ASP.NET v2.0
ルート ディレクトリが公開されている Web サイト (Web アプリケーションではない) がありますが、"Admin" サブディレクトリには認証が必要です。セットアップに関するすべてが非常に一般的です。ルート web.config で定義された接続文字列と標準AspNetSqlMembershipProvider
プロバイダーを使用し、ASP.NET ログイン コントロールを使用しています。
Admin ディレクトリの web.config は、ユーザーが「管理者」ロールを持っている必要があることを指定します。
を使用しSQL Server 2008
ていますが、接続文字列は良好です。すべてのルート レベル ページはデータ ドリブンであり、すべて正常に動作します。
プロバイダーの構成は問題ないようです。
ログインすると、Login コントロールの " OnLoggedIn
" イベントが発生します。
そのイベント コードの最後の行で、自分のAdmin/Default.aspx
ページにリダイレクトされます。「OnLoggedIn」のブレークポイントは、管理ディレクトリにリダイレクトされるまではすべて問題ないことを示しています...そして...
...そして私は待ちます...そして待ちます...
そして、「SQLExpress database file auto-creation error
. 」が発生したというエラーが表示されます。
なぜ突然 SQL Server Express ファイルを作成しようとするのでしょうか? 接続文字列が突然無視されるのはなぜですか?
1 つの奇妙な手がかり: 「OnLoggedIn」イベントの最後の行の直前に、次のように入力しました。
bool blnTest = User.IsInRole("Admin");
かどうか見たかったblnTest = true
。
何が起こるかというと、プロセスがこの行にヒットし、待機し、最終的に SQL Server Express データベースにアクセスできないというメッセージが表示されます。ユーザーの役割を決定するための参照 (コード内または舞台裏のいずれか) が間違ったデータベースを呼び出しているようです。
編集:ああ、blnTest をテストすると、時々待機します。それ以外の場合は、値がすぐに「false」として報告されます。