我有一个多层的ASP.Net MVC3应用程序,其中不同的层需要共享一些设置,我想知道如何最好地实现这一点。
目前,我所有的AppSettings都在Web.config文件中,但我只是在我的解决方案中添加了一个新项目,以创建一个控制台应用程序,该应用程序将在每晚调用Windows Task Scheduler来执行日常维护任务。此控制台应用程序将使用与web应用程序相同的数据库、存储库层、服务层等,并且两个应用程序应该在大部分情况下共享相同的设置。我希望避免在两个文件(app.config和web.config)中重复设置。
此外,我希望这些设置对服务层可用,该层位于同一解决方案中的单独项目中。
我已经读了下面的帖子,但我不完全理解解决方案,我不确定这是做这件事的最好方法。
Sharing Config settings between Web App and Console App
我也读了那篇文章的链接,我觉得这个解决方案不是很优雅。
我使用的是VS2010和EF 4.3.1。
发布于 2012-11-07 06:04:01
如果您只是对从控制台应用程序访问web.config文件的AppSettings感兴趣,这就足够简单了。唯一令人恼火的是,由于您的控制台应用程序不会在web上下文中运行,因此您必须提前知道您的站点在IIS中的名称。这是您自己的应用程序,这不应该是一个挑战。
只需使用System.Web.Configuration.WebConfigurationManager打开并访问指定站点的web.config即可。
发布于 2012-11-07 06:04:26
这个想法是,您可以将设置放入一个在所有项目之间作为链接共享的通用.config中,而不是将其放入所有项目中。在this answer中概述了该解决方案。另外,如果您不知道将配置元素外部化到单独文件中的可能性,请检查configSource property on MSDN。
https://stackoverflow.com/questions/13260006
复制相似问题