【问题标题】:Reading & Editing configuration inside Web.config在 Web.config 中读取和编辑配置
【发布时间】:2011-05-04 16:34:39
【问题描述】:

我有一些设置需要从我目前正在处理的网站的管理面板中进行编辑。我认为将这些设置放在 web.config 中是有意义的(或者我应该将它们放在其他地方吗?)。所以无论如何,我正在尝试编写必要的代码来执行此操作,但我被卡住了......这是我第一次真正需要这样做...... :) 这是我到目前为止所得到的:

Web.config 中的 appSettings 部分:

  <appSettings>
    <add key="ClientValidationEnabled" value="true" /> 
    <add key="UnobtrusiveJavaScriptEnabled" value="true" />
    <add key="InvitationOnly" value="true" />
    <add key="MaintainanceMode" value ="false"/>
  </appSettings>

这是我正在尝试编写的一个类,以允许轻松检索和修改将放置在 appSettings 部分中的某些值:

public static class SiteSettings
{
    public static bool InvitationOnly
    {
        get
        {
            var invitation = WebConfigurationManager.AppSettings["InvitationOnly"];
            return Convert.ToBoolean(invitation);
        } 
        set
        {
            Configuration config = WebConfigurationManager.OpenWebConfiguration("~");
            var appSettings = config.GetSection("appSettings") as AppSettingsSection;
            if(appSettings != null)
            {
                //got stuck here...
            }
        }
    }
}

我在正确的轨道上吗?我该如何从这里继续?

顺便说一句,将网站设置放在 web.config 中有多安全?我应该担心什么吗?

谢谢。

【问题讨论】:

    标签: asp.net asp.net-mvc xml configuration web-config


    【解决方案1】:

    您绝对不想修改 web.config 文件,因为每次这样做您的应用程序都会重新启动。如果 web.config 被修改,ASP.NET 会立即卸载 AppDomain。 web.config 用于存储应用程序的静态只读配置。如果您需要存储必须修改的设置,web.config 不是正确的位置。您可以使用自定义文件、会话、cookie、数据库……

    【讨论】:

    • 是的,我在某处读到编辑 web.config 文件会重新启动应用程序,但这究竟是什么意思?卸载 AppDomain 是什么意思?最后,我想最好将这些数据存储在我认为的 XML 文件中?
    • @Kassem,这意味着应用程序已从内存中卸载并且所有请求都已中止。这意味着您可能存储在内存中的任何内容都将丢失,并且 Application_Start 事件将在后续请求中被触发。至于什么是最好的很难说,因为您没有提供有关您的方案的足够详细信息。请注意,如果您使用 XML 文件路由,请不要忘记同步对该文件的访问,因为当管理员正在写入该文件时,如果某些用户同时尝试读取,您可能会遇到麻烦。
    • 哦,我绝对不希望这种情况发生。谢谢你的提醒!关于 XML 文件...只有管理员才能写入此文件。但是,是的,用户将从该文件中读取。有什么我需要确切研究的提示吗?
    猜你喜欢
    • 2012-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-14
    • 1970-01-01
    • 2012-01-02
    • 1970-01-01
    相关资源
    最近更新 更多