如何添加新的自定义节定义及其详细信息

时间:2010-12-09 21:50:34

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

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

我可以使用以下代码添加部分定义:

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> 

1 个答案:

答案 0 :(得分:0)

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

  1. 使用。创建custom_schema.xml 记录的模式定义 应用程序块(见下文)..它 这是一个非常繁琐的过程
  2. 复制该文件C:\ Windows \ System32 \ inetsrv \ config \ schema
  3. 在中添加节定义 web.config(应用程序的 web.config)手动
  4. 打开IIS7控制台 - &gt;单击 配置编辑器(安全性 基)
  5. 选择上面添加的部分(它 应该出现在列表中 - loggingConfiguration)
  6. 它应该显示完整 定义
  7. 编辑所需的值(有趣的事情 我们要编辑所有的 值,即使您有默认值 价值观,否则你只会得到 脚本中更改的值)
  8. 您可以单击“生成脚本” 链路

  9. 请参阅下面的示例custom_schema.xml

    ---记录应用程序块的Schema详细信息(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>