gpt4 book ai didi

c# - 在 ASP.NET 应用程序中存储应用程序配置参数的正确方法是什么?

转载 作者:行者123 更新时间:2023-11-30 19:21:02 25 4
gpt4 key购买 nike

我们在 C# .NET 4 ASP 网站中的每个模块都有很多应用程序参数。

参数示例:超时、公式常量、每个模块的线程限制、每次使用的费用等。

我们知道以下方法中最好的是什么:

  1. 使用数据库配置表
  2. 使用 xml。在启动时(和 xml 更改时)将该 xml 加载到本地缓存
  3. 带有 public const int XYZ = 123 的简单 constants.cs 文件;键值对的类型。
  4. web.config(尽管我认为它主要用于配置的部署类型)
  5. 还有其他方法吗?

关于优缺点和标准的帮助。遵循的方法会有所帮助。

最佳答案

我喜欢#1,将值存储在数据库中,原因如下:

  1. 这适用于网络农场。您不必在多台服务器上同步 web.config 的版本。
  2. 进行更改不需要重新编译和重新部署应用程序。变化可以是立竿见影的。
  3. 为授权用户创建维护网页以更新值而不影响生产支持相对容易。
  4. 可以随时从应用程序外部确定任何有权访问数据库(或显示值的维护页面)的人。无需通读源代码或查看 web.config 文件。
  5. Web 应用程序无需重新启动即可使更改生效。

编辑:对其他建议方法的补充评论:如果应用程序将位于网络农场,所有三个非数据库选择都需要部署到所有服务器。如果涉及很多 Web 服务器,如果部署过程很复杂,或者如果公司政策严格限制谁(以及何时)可以将更改部署到生产服务器,这就不是一件小事。

即使没有网络农场,在企业生产环境中,部署更改也会非常缓慢。

关于常量,我发现它们往往散布在整个应用程序代码中。找到它们可能是一个真正的挑战。当然,如果您有集中配置常量的纪律,就不会有这个问题。

还有一种方法不在您的列表中,即使用资源文件 (.resx)。虽然这通常用于本地化,但我已经看到它用于配置值,尤其是用于存储标准消息的文本。虽然您不必重新编译应用程序来更改 .resx 文件,但更改它会导致应用程序重新启动。

总而言之,我偏爱数据库方法的原因是部署速度快且易于部署、避免重新编译和应用程序重启、将数据集中在应用程序外部以及让业务用户可以访问数据。

关于c# - 在 ASP.NET 应用程序中存储应用程序配置参数的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4548802/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com