【问题标题】:Nested Sections in web.configweb.config 中的嵌套部分
【发布时间】:2012-07-11 02:36:40
【问题描述】:

我需要在我的 Web.config 文件中创建嵌套部分,我找不到任何符合我要求的示例。

<IPTests>
    <Environment environment="DEV">
      <Machine machine="Web01">
        <SiteIP site="Sitecore" ip="10.10.2.191">
        </SiteIP>
      </Machine>
    </Environemnt>
</IPTests>

这用于不同应用程序/站点的“健康检查”。我需要检查不同站点使用的所有资源是否正常工作。我已经使用 DNS 完成了这项工作,但是我现在需要在不同的环境中为不同的服务器执行此操作,方法是使用 IP 地址访问不同的服务器。

任何帮助都会很棒!

这是我迄今为止所拥有的。

public class IPTests : ConfigurationSectionGroup
    {
        [ConfigurationProperty("codeEnvironment")]
        public CodeEnvironmentSection CodeEnvironment
        {
            get { return (CodeEnvironmentSection)base.Sections["codeEnvironment"]; }
        }
    }

    public class CodeEnvironmentSection : ConfigurationSection
    {
        [ConfigurationProperty("environemnt")]
        public ValueElement To
        {
            get { return (ValueElement)base["environemnt"]; }
        }
    }

    public class MachineSection : ConfigurationSection
    {
        [ConfigurationProperty("machine")]
        public ValueElement To
        {
            get { return (ValueElement)base["machine"]; }
        }
    }

    public class SiteIPSection : ConfigurationSection
    {
        [ConfigurationProperty("site")]
        public ValueElement To
        {
            get { return (ValueElement)base["site"]; }
        }

        [ConfigurationProperty("ip")]
        public ValueElement To
        {
            get { return (ValueElement)base["ip"]; }
        }
    }

    public class ValueElement : ConfigurationElement
    {
        [ConfigurationProperty("value")]
        public string Value
        {
            get { return (string)base["value"]; }
            set { base["value"] = value; }
        }
    }

【问题讨论】:

标签: c# web-config


【解决方案1】:

看看Configuration Section Designer。我用它来生成配置类,然后花了一些时间了解 API 和设计。

【讨论】:

    【解决方案2】:

    您似乎正试图在您的 web.config 中存储一个信息数据库。如果这可能完全改变,那么你不应该将它存储在这里。

    问题是对 web.config 的任何更改都会导致您的网站重新启动并重置用户会话缓存等。

    如果您致力于添加自己的部分,那么您可以通过创建自定义 ConfigurationSection 类来做到这一点:

    您可以在网上搜索更多信息,因为那里有很多教程。

    【讨论】:

    • 我正在对不同的服务、数据库、文件夹等进行资源测试。我需要在不同的 ips 上运行这些测试(如果你愿意,这是一个健康检查测试)。并且信息不会经常更改,但如果确实需要更改,则需要轻松更改,这就是它位于 web.config 文件中的原因。
    • 很公平,你可以把它放在一个容易支持嵌套元素的 xml 文件中 - 取决于你对 ConfigurationSection 类的恼火程度:)
    • 非常非常恼火哈哈,但我只是一个新手实习生,这就是我的主管想要的:/
    猜你喜欢
    • 2023-03-13
    • 1970-01-01
    • 2015-03-11
    • 2018-07-03
    • 1970-01-01
    • 2012-02-26
    • 1970-01-01
    • 2011-05-19
    • 2015-06-18
    相关资源
    最近更新 更多