【问题标题】:Sharing AppSettings and ConnectionStrings between a console and a web app在控制台和 Web 应用程序之间共享 AppSettings 和 ConnectionStrings
【发布时间】:2012-10-26 22:27:18
【问题描述】:

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

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

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

我已阅读以下帖子,但我不完全理解解决方案,我不确定这是最好的方法。

Sharing Config settings between Web App and Console App

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

我正在使用 VS 2010 和 EF 4.3.1。

【问题讨论】:

    标签: asp.net-mvc-3 web-config app-config appsettings


    【解决方案1】:

    如果您只是对从控制台应用程序访问 web.config 文件的 AppSettings 感兴趣,那很简单。唯一真正令人烦恼的是,由于您的控制台应用程序不会在 Web 上下文中运行,因此您必须提前知道您的站点在 IIS 中的名称。这不是您自己的应用程序的挑战。

    只需使用System.Web.Configuration.WebConfigurationManager打开并访问指定站点的web.config即可。

    【讨论】:

      【解决方案2】:

      这个想法是您可以将设置放入所有项目之间共享的公共.config 作为链接,而不是将其放入所有项目中。 this answer 中概述了该解决方案。如果您不知道将配置元素外部化到单独的文件中的可能性,也请查看configSource property on MSDN

      【讨论】:

        猜你喜欢
        • 2014-08-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多