0

我有一个多层 ASP.Net MVC 3 应用程序,其中不同的层需要共享一些设置,我想知道如何最好地实现这一点。

目前,我所有的 AppSettings 都在 Web.config 文件中,但我只是在我的解决方案中添加了一个新项目,以创建一个将在每晚调用的控制台应用程序购买 Windows 任务计划程序来执行日常维护任务。此控制台应用程序将使用与 Web 应用程序相同的数据库、存储库层、服务层等,并且两个应用程序应在大多数情况下共享相同的设置。我想避免在两个文件(app.config 和 web.config)中重复设置。

此外,我希望这些设置可用于服务层,该服务层位于同一解决方案的单独项目中。

我已阅读以下帖子,但我并不完全理解解决方案,并且我不确定这是执行此操作的最佳方法。

在 Web App 和 Console App 之间共享 Config 设置

我还阅读了该帖子链接的文章,但我认为解决方案不是很优雅。

我正在使用 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 answerconfigSource property on MSDN如果您不知道将配置元素外部化到单独的文件中的可能性,还请检查。

于 2012-11-06T22:04:26.490 回答