如何将不同应用程序部分的全局配置设置封装在单个文件中?

发布于 2024-12-08 12:32:45 字数 782 浏览 1 评论 0原文

我们有一个基于 IIS 的应用程序,其中包含不同的 Web 应用程序、一些第三方组件和多种服务。

  • 服务器1

    • 应用程序池1
      • 应用1
    • 应用程序池2
      • 第三方应用
  • Server2

    • 应用程序池3
      • 第三方应用 2
      • 应用2
    • Windows 服务
    • CLR 存储过程

目标是将所有环境相关设置(例如连接字符串、URLS 等)放入每个环境(开发、测试、集成、生产)的单个配置文件中)。应用程序相关的内容应该基于此“全局”设置文件和每个应用程序的单独设置文件。

我必须使用内置静态 System.Configuration.ConfigurationManager 类,因为一些第三方工具依赖于它。
我知道使用 System.Configuration.ConfigurationManager 可以采用以下方法:

  • 单个文件(当前的冗余方法)
  • Machine.config(过于全局)
  • IIS 中的分层配置(不影响 Service 和 CLR Proc)

编辑: linkedConfiguration 元素仅影响加载程序绑定策略。

还有其他方法吗? 哪一个最好?

We have an IIS based application with different web apps, some third party components and several services.

  • Server1

    • AppPool1
      • App1
    • AppPool2
      • Third party app
  • Server2

    • AppPool3
      • Third party app 2
      • App2
    • Windows Service
    • CLR Stored Proc

The goal is to put all environment relevant settings (such as connection strings, URLS, etc.) into a single configuration file per environment (dev., test, integration, production). The application relevant stuff should be based on this 'global' settings file and individual settings files per application.

I have to use the built-in static System.Configuration.ConfigurationManager class because some third party tools depend on it.
I know of the following possible approaches using System.Configuration.ConfigurationManager:

  • Individual files (current, redundant approach)
  • Machine.config (too global)
  • Hierarchical configuration in IIS (doesn't affect Service and CLR Proc)

Edit:
The linkedConfiguration element only affects loader binding policies.

Are there other methods?
Which one is best?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

过去的过去 2024-12-15 12:32:45

我假设您正在使用数据库。您可以在数据库服务器中创建一个数据库来存储共享或每个应用程序的配置值。然后,您需要在每个 web.config 中存储的唯一内容是“配置数据库”的连接字符串。

或者,也许您可​​以创建一个 Web 服务,以类似的方式提供配置值。

I'm going to assume you are using a database. You can create a DB in your database server to store configuration values, either shared or per-application. Then, the only thing you need to store in each web.config is a connection string to the "configuration database".

Or, perhaps you can create a Web Service that serves up configuration values in a similar way.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文