同じモデル、データベースを共有し、組み込みのフォーム ベースの認証を使用する 4 つの Web サイトを含む複雑な Web プロジェクトを構築しようとしています。
以前、共有要素を含むクラス ライブラリを作成し、各プロジェクトでそのライブラリを参照するよう提案されました。これは私には理にかなっていますが、すべての参照を含めた後でも多くのエラーが発生したようです。だから私は基本的にゼロから始めて、今では 1 つのソリューションの下に 2 つの通常の MVC 4.0 プロジェクトがあります。最初のプロジェクトはうまくいっています。これには、フォーム ベースの認証メンバーシップ コントローラーとモデル、およびすべてのデータ モデルと、内部に db を含む App_Data フォルダーが含まれています。web.config ファイルは DB を指しており、提供されているデフォルトのビューとコントローラーを使用してメンバーシップ機能をテストしてもまったく問題はありません。
最初のアプリで 2 番目のアプリに依存関係を設定し、最初のプロジェクトも参照しました。このプロジェクトには、既定の HomeController とビューのみが含まれています。ビルド時にエラーは発生しません。たとえば、Web サイトを実行して /Account/LogOff にアクセスしようとすると、次のエラーが表示されます。
ファイル '~\App_Data\Pp.mdf' をデータベース 'Pp.mdf' として添付できません。
説明: 現在の Web 要求の実行中に未処理の例外が発生しました。エラーの詳細とコード内のどこでエラーが発生したかについては、スタック トレースを確認してください。
例外の詳細: System.Data.SqlClient.SqlException: ファイル '~\App_Data\Pp.mdf' をデータベース 'Pp として添付できません。
ソース エラー:
39 行目: } 40 行目: 41 行目: WebSecurity.InitializeDatabaseConnection("PpDB", "UserProfile", "UserId", "UserName", autoCreateTables: true); 42行目: } 43行目: catch (例外ex)
ソース ファイル: c:\Users\Administrator\Documents\Prp\PpModels\Filters\InitializeSimpleMembershipAttribute.cs 行: 41
2 番目のプロジェクトの接続文字列で遊んでみましたが、MVC を使用してパスがどのように解決されるのかよくわかりません。
ヘルプとアドバイスをいただければ幸いです。髪を引っ張ってる!モデルと DB を共有する複数のプロジェクトを使用する方法を示すチュートリアルを知っていれば、それは大歓迎です。ありがとう!