0

さまざまなレイヤーがいくつかの設定を共有する必要がある多層 ASP.Net MVC 3 アプリケーションがあり、これをどのように達成するのが最善か疑問に思っています。

今のところ、すべての AppSettings は Web.config ファイルにありますが、ソリューションに新しいプロジェクトを追加して、毎晩呼び出されるコンソール アプリケーションを作成し、定期的なメンテナンス タスクを実行するために Windows タスク スケジューラを購入しました。このコンソール アプリケーションは、Web アプリケーションと同じデータベース、リポジトリ レイヤー、サービス レイヤーなどを使用し、両方のアプリケーションはほとんどの部分で同じ設定を共有する必要があります。2 つのファイル (app.config と web.config) で設定が重複しないようにしたいと考えています。

また、これらの設定を、同じソリューション内の別のプロジェクトにあるサービス レイヤーで使用できるようにしたいと考えています。

次の投稿を読みましたが、解決策を完全には理解していません。また、これが最善の方法であるかどうかもわかりません。

Web アプリとコンソール アプリの間で構成設定を共有する

その投稿にリンクされている記事も読みましたが、解決策があまりエレガントではありません。

VS 2010 と EF 4.3.1 を使用しています。

4

2 に答える 2

0

コンソール アプリから web.config ファイルの AppSettings にアクセスするだけであれば、それは簡単です。唯一の厄介な点は、コンソール アプリが Web コンテキストで実行されないため、IIS でサイトが何と呼ばれているかを事前に知っておく必要があることです。これが独自のアプリケーションであることは、難しいことではありません。

System.Web.Configuration.WebConfigurationManagerを使用して、指定したサイトの web.config を開いてアクセスするだけです。

于 2012-11-06T22:04:01.297 に答える
0

アイデアは、設定をすべてのプロジェクトに配置.configするのではなく、リンクとしてすべてのプロジェクト間で共有される共通に配置できるということです。ソリューションの概要を に示しthis answerます。また、configSource property on MSDN構成要素を別のファイルに外部化する可能性について認識していない場合もチェックアウトしてください。

于 2012-11-06T22:04:26.490 に答える