【问题标题】:How to add new custom section definition and its Details如何添加新的自定义部分定义及其详细信息
【发布时间】:2011-05-23 03:42:41
【问题描述】:

我想使用 IIS7 管理控制台配置编辑器在我的web.config 文件中的<configSections> 中添加新的配置节定义,并生成一个脚本并在安装中执行此脚本以更新客户端的生产服务器。

我能够使用以下代码添加节定义:

ServerManager serverManager = new ServerManager(); 
Configuration config = 
  serverManager.GetWebConfiguration("Default Web site/upngisintegration"); 
SectionGroup rootSectionGroup = config.RootSectionGroup;

SectionDefinition logSectiondef = 
  rootSectionGroup.Sections.Add("loggingConfiguration"); 
logSectiondef.Type = 
  @"Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.LoggingSettings, 
  Microsoft.Practices.EnterpriseLibrary.Logging, Version=2.0.0.0, 
  Culture=neutral, PublicKeyToken=null"; 

serverManager.CommitChanges();

但是,我不知道如何添加配置详细信息(见下文)。

我该怎么做?

部分定义:

<section name="loggingConfiguration" 
  type="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.LoggingSettings,
  Microsoft.Practices.EnterpriseLibrary.Logging, Version=2.0.0.0, 
  Culture=neutral, PublicKeyToken=null" />

部分详情:

<loggingConfiguration 
    name="Logging Application Block" 
    tracingEnabled="true" 
    defaultCategory="General">
    <listeners>
      <add fileName="C:\temp\xxxxx.log" ..snipped for brevity.. />
      <add timestampFormat="MM-dd-yyyy HH-mm-ss" ..snipped for brevity... />
    </listeners>
    <formatters>
      <add template="...." ..snipped for brevity.../>
    </formatters>
    <categorySources>
      <add switchValue="All" name="General">
        <listeners>
          <add name="RollingFile TraceListener" />
        </listeners>
      </add>X
      <add switchValue="All" name="Inbound Outbound Trans">
        <listeners>
          <add name="RollingFile TraceListener" />
        </listeners>
      </add>
    </categorySources>
    <specialSources>
      <allEvents switchValue="All" name="All Events" />
      <notProcessed switchValue="All" name="Unprocessed Category" />
      <errors switchValue="All" name="Logging Errors &amp; Warnings">
        <listeners>
          <add name="RollingFile TraceListener" />
        </listeners>
      </errors>
    </specialSources>
  </loggingConfiguration> 

【问题讨论】:

    标签: asp.net iis scripting configuration iis-7


    【解决方案1】:

    经过几天的研究,我必须执行以下步骤来生成所需的脚本。

    1. 创建一个 custom_schema.xml 与 记录的架构定义 应用程序块(见下文)..它 是一个非常繁琐的过程
    2. 复制该文件 C:\Windows\System32\inetsrv\config\schema
    3. 在 web.config(应用程序的 web.config) 手动
    4. 打开 IIS7 控制台->点击 配置编辑器(安全 组)
    5. 选择上面添加的部分(它 应该出现在列表中 - 日志配置)
    6. 它应该向您显示完整的 定义
    7. 编辑所需的值(有趣的事情 是我们必须编辑所有 值,即使你有默认值 值,否则你只会得到 脚本中更改的值)
    8. 您可以点击生成脚本 链接

    请参阅下面的示例 custom_schema.xml

    --- 记录应用程序块的架构详细信息 (CUSTOM_schema.xml)

    <configSchema> 
      <sectionSchema name="loggingConfiguration"> 
     <attribute name="name" type="string" />
     <attribute name="tracingEnabled" type="bool" defaultValue="true"/>
     <attribute name="defaultCategory" type="string" defaultValue="General"/>
        <attribute name="type" type="string" defaultValue="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.LoggingSettings, Microsoft.Practices.EnterpriseLibrary.Logging, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null"/>            
     <element name="listeners">
      <collection addElement="add" removeElement="remove" clearElement="clear">
                <attribute name="fileName" required="true" type="string" defaultValue="c:\temp\log.log" />
       <attribute name="header" required="true" type="string" defaultValue="-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-" />
       <attribute name="footer" required="true" type="string" defaultValue="-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-" />
       <attribute name="formatter" required="true" type="string" defaultValue="Text Formatter" />
       <attribute name="listenerDataType" required="true" type="string" defaultValue="LogicaCMG.EnterpriseLibraryExtensions.Logging.Configuration.RollingFileTraceListenerData, LogicaCMG.EnterpriseLibraryExtensions.Logging, Version=0.5.2.0, Culture=neutral, PublicKeyToken=null"  />
       <attribute name="traceOutputOptions" required="true" type="string" defaultValue="None" />
       <attribute name="type" type="string" required="true" defaultValue="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.FlatFileTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null"  />
       <attribute name="name" type="string" required="true" defaultValue="RollingFile TraceListener" />  
       <attribute name="ageThreshold" type="string" required="true" defaultValue="1" />  
       <attribute name="ageUnit" type="string" required="true" defaultValue="Days" />  
       <attribute name="sizeThreshold" type="string" required="true" defaultValue="2" />  
       <attribute name="sizeUnit" type="string" required="true" defaultValue="Megabytes" />  
       <attribute name="maximumNumberOfLogs" type="string" required="true" defaultValue="20" /> 
       <attribute name="timestampFormat" type="string" required="true" defaultValue="MM-dd-yyyy HH-mm-ss" /> 
            </collection>     
     </element> 
     <element name="formatters">
      <collection addElement="add" removeElement="remove" clearElement="clear">
                <attribute name="template" required="true" type="string" defaultValue="Timestamp:{timestamp(local:F)}&#xA;Message: {message}&#xA;Category: {category}&#xA;Priority: {priority}&#xA;Severity: {severity}"  />   
       <attribute name="type" type="string"  required="true" defaultValue="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null" />
       <attribute name="name" required="true" type="string" defaultValue="Text Formatter" />   
            </collection>     
     </element> 
     <element name="categorySources">
      <collection addElement="add" removeElement="remove" clearElement="clear">
                <attribute name="switchValue"  required="true" type="string" defaultValue="All"  />      
       <attribute name="name" required="true" type="string" defaultValue="General"/>       
       <element name="listeners">
         <collection addElement="add" removeElement="remove" clearElement="clear">      
          <attribute name="name" required="true" type="string" defaultValue="RollingFile TraceListener"/>       
         </collection>
        </element>
            </collection>        
     </element> 
     <element name="specialSources">
      <element name="allEvents">
       <attribute name="switchValue"  type="string" defaultValue="All"/>
       <attribute name="name" type="string" defaultValue="All Events"/>
      </element>
      <element name="notProcessed">
       <attribute name="switchValue"  type="string" defaultValue="All"/>
       <attribute name="name"  type="string" defaultValue="Unprocessed Category"/>
      </element>
      <element name="errors">
       <attribute name="switchValue"   type="string" defaultValue="All"/>
       <attribute name="name"  type="string" defaultValue="Logging Errors &amp; Warnings"/>
       <element name="listeners">
        <collection addElement="add" removeElement="remove" clearElement="clear">      
         <attribute name="name"  type="string" defaultValue="RollingFile TraceListener"/>       
        </collection>
       </element>        
      </element>      
     </element> 
      </sectionSchema> 
    </configSchema> 
    

    【讨论】:

      猜你喜欢
      • 2022-11-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-09
      • 2012-05-23
      • 1970-01-01
      • 2017-06-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多