存储.NET应用程序设置的位置

时间:2014-03-06 18:30:58

标签: c# asp.net .net web-config

我有一个.NET应用程序需要引用一个全局应用程序变量,一个数字,应用程序使用该变量允许/禁止用户在日期之前输入事件。目前我有

<appSettings>
    <add key="beginDateRangeDays" value="60" />
    <add key="endDateRangeDays" value="30" />
</appSettings>

在我的Web.config中。我希望管理员用户能够通过管理员网页定期修改这些值。如果我允许这样做,每次他们进行更改时,我的应用程序池都会重新启动。

你建议在哪里储存?在外部配置文件中?但这会导致应用程序池重启吗?我应该在应用程序的数据库中使用配置表吗?

3 个答案:

答案 0 :(得分:3)

  

我希望管理员用户能够通过管理网页定期修改这些值

数据库,绝对。配置文件是存储非静态值的便利位置,但并不总是最佳位置。退一步,考虑两个这样的价值观“桶”:

  1. 用户可以在应用程序的任何给定实例中更改的逻辑配置。
  2. 定义应用程序的任何给定实例及其与周围环境的关系的基础架构配置。
  3. 前者最好保存在应用程序的数据库中,后者最好保存在配置文件中。前者可能包含以下值:

    • 今年的商务假期
    • 用于计算业务数据的值
    • 用户表单的默认值

    虽然后者可能包含以下值:

    • 数据库连接字符串
    • 外部网络服务的网址
    • 服务帐户的凭据

    让用户在不破坏应用程序的情况下更改可以更改的内容,并在数据库中跟踪这些更改。保留配置文件中的基础结构详细信息,因为对这些详细信息的更改很可能无论如何都需要重新启动应用程序池。

答案 1 :(得分:0)

您应该能够设置应用程序设置,以便在IIS中进行编辑。请参阅此TechNet文章:

  

http://technet.microsoft.com/en-us/library/cc753062(v=ws.10).aspx

答案 2 :(得分:0)

如果您将其存储在数据库中,那么您可以控制谁访问它以及何时访问它。然后您不必担心重新启动应用程序池。