compilation 元素(ASP.NET 设置架构)

配置 ASP.NET 用于编译应用程序的所有编译设置。

<configuration> 元素
  system.web 元素(ASP.NET 设置架构)
    compilation 元素(ASP.NET 设置架构)

<compilation
   debug="[true|false]"
   batch="[true|false]"
   batchTimeout="number of seconds"
   defaultLanguage="language"
   explicit="[true|false]"
   maxBatchSize="maximim number of pages"
   maxBatchGeneratedFileSize="maximum combined size"
   numRecompilesBeforeAppRestart="number"
   strict="[true|false]"
   tempDirectory="temporary files directory"
   urlLinePragmas="[true|false]"
   assemblyPostProcessorType="assembly post processor, assembly"
>
   <assemblies>...</assemblies>
   <buildproviders>...</buildproviders>
   <codeSubDirectories>...</codeSubDirectories>
   <compilers>...</compilers>
   <expressionBuilders>...</expressionBuilders>
</compilation>

属性和元素

下面几部分描述了属性、子元素和父元素。

属性

属性 说明

assemblyPostProcessorType


可选的 String 属性。

通过引用程序集的处理器后功能为程序集指定后续处理编译步骤。使用"assembly post processor,assembly" 格式。assembly post processor 必须实现 IAssemblyPostProcessor 接口。使用这种后续处理方法可以针对编译强制执行调试,这可以在指定部署模式时重写。

此属性是 .NET Framework 2.0 版中的新属性。

默认值为空字符串。


batch


可选的 Boolean 属性。

指示是否支持批处理。

如果为 True,则清除在第一次访问文件时所需的编译导致的延迟。当该属性设置为 True 时,ASP.NET 将以批处理模式预编译所有未编译的文件,第一次编译文件时,这将导致更长时间的延迟。但在这一初始延迟之后,对文件进行后续访问时,将消除编译延迟。

默认值为 True


batchTimeout


可选的 TimeSpan 属性。

指定批编译的超时期限(以秒为单位)。如果编译不能在超时期限内完成,则编译器还原为当前页的单编译模式。

默认值为“900”(15 分钟)。


debug


可选的 Boolean 属性。

指定是否应编译调试二进制文件(而非发布的二进制文件)。

默认值为 False


defaultLanguage


可选的 String 属性。

指定要在动态编译文件中使用的默认编程语言,如 "C#" 或“PERL”。语言名是使用 system.codeDom 节的 compilers 元素或此元素的 compilers子元素(已被否决)定义的。

默认值为 "vb"


explicit


可选的 Boolean 属性。

指定是否设置 Microsoft Visual Basic explicit 编译选项。如果为True,则必须使用 DimPrivatePublic 或 ReDim 语句声明所有变量。

默认值为 True


maxBatchGeneratedFileSize


可选的 Int32 属性。

指定每个批编译过程中生成的源文件的最大组合大小(以 KB 为单位)。通常情况下,当实际需要的位数很少却在内存中加载巨大的程序集并不是理想的做法。该限制有助于确保程序集的大小控制在合理的范围内,使应用程序能够利用批处理机制而又不会使系统过载。这类似于maxBatchSize

默认值为 1000


maxBatchSize


可选的 Int32 属性。

指定每个成批处理的编译的最多页数。

默认值为 1000


numRecompilesBeforeAppRestart


可选的 Int32 属性。

指定应用程序重新启动前可能对资源进行动态重新编译的次数。在全局和应用程序级别(而非目录级别)支持该属性。

默认值为 15


strict


可选的 Boolean 属性。

指定是否启用 Visual Basic strict 编译选项。

默认值为 False


tempDirectory


可选的 String 属性。

指定编译期间用于临时文件存储的目录。

默认值为空字符串。若为空字符串并且目前的进程标识具有所需的权限访问目录,则文件将存储在 %FrameworkInstallLocation%\Temporary ASP.NET Files 下。否则,系统将抛出或移动至其他位置。例如,可以在用户配置文件下创建临时目录。


urlLinePragmas


可选的 Boolean 属性。

指定编译器是否应使用 URL(而非物理路径)。

默认值为 False

子元素

元素 说明

assemblies


定义一个程序集名称的集合,这些程序集在 ASP.NET 资源编译期间使用。


buildproviders


定义用于编译自定义资源文件的生成提供程序的集合。

此元素是 .NET Framework 2.0 版中的新元素。


codeSubDirectories


定义一个有序子目录集合,这些子目录包含在运行时编译的文件。

此元素是 .NET Framework 2.0 版中的新元素。


compilers


定义一个编译器选项的集合。

注意

在 .NET Framework 2.0 版中,此元素已被否决,而改为使用 system.codeDom 节的compilers 元素。但是,使用 compilation 元素的 compilers 子元素仍然有效,并且将重写位于 system.codedom 节中的 compilers 元素。


expressionBuilders


定义一个要在编译期间使用的资源字符串的集合。资源字符串将前缀与表达式生成器关联起来。

此元素是 .NET Framework 2.0 版中的新元素。

父元素

元素 说明

configuration


指定公共语言运行库和 .NET Framework 应用程序所使用的每个配置文件中均需要的根元素。


system.web


在配置文件中指定 ASP.NET 配置设置的根元素,它包含配置 ASP.NET Web 应用程序行为的配置元素。

备注

compilation 元素配置 ASP.NET 用于编译应用程序的所有编译设置。

在 .NET Framework 2.0 版中,compilation 元素的 compilers 子元素已被否决,而改为使用 system.codeDom 节的 compilers 元素。但是,使用 compilation 元素的 compilers 子元素仍然有效,并且将重写位于system.codedom 节中的 compilers 元素。

默认配置

下面的默认 compilation 元素不是在 Machine.config 文件或根 Web.config 文件中显式配置的。但是,它是应用程序返回的默认配置。项将添加到根 Web.config 文件中的 assembliesbuildProviders 和 expressionBuilders集合。

<compilation
   tempDirectory=""
   debug="false"
   strict="false"
   explicit="true"
   batch="true"
   batchTimeout="900"
   maxBatchSize="1000"
   maxBatchGeneratedFileSize="1000"
   numRecompilesBeforeAppRestart="15"
   defaultLanguage="vb"
   urlLinePragmas="false"
   assemblyPostProcessorType=""
>
   <assemblies>
       <clear />
   </assemblies>
   <buildProviders>
       <clear />
   </buildProviders>
   <expressionBuilders>
       <clear />
   </expressionBuilders>
</compilation>

下面的默认 compilation 元素在 .NET Framework 1.1 版的 Machine.config 文件中配置。在 .NET Framework 1.0 版中也存在类似的设置,但版本号不同。

<compilation debug="false" explicit="true" defaultLanguage="vb">
   <compilers>
      <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="1"/>
      <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.VisualBasic.VBCodeProvider, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
      <compiler language="js;jscript;javascript" extension=".js" type="Microsoft.JScript.JScriptCodeProvider, Microsoft.JScript, Version=7.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
      <compiler language="VJ#;VJS;VJSharp" extension=".jsl" type="Microsoft.VJSharp.VJSharpCodeProvider, VJSharpCodeProvider, Version=7.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/></compilers>
   <assemblies>
      <add assembly="mscorlib"/>
      <add assembly="System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
      <add assembly="System.Web, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
      <add assembly="System.Data, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
      <add assembly="System.Web.Services, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
      <add assembly="System.Xml, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
      <add assembly="System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
      <add assembly="System.EnterpriseServices, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
      <add assembly="System.Web.Mobile, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
      <add assembly="*"/>
   </assemblies>
</compilation>

示例

下面的代码示例演示如何为应用程序配置编译设置。

<configuration>
   <system.web>
      <compilation defaultLanguage="VB"
         debug="true"
         numRecompilesBeforeAppRestart="15">
         <compilers>
            <compiler
               language="VB;VBScript"
               extension=".cls"
               type="Microsoft.VisualBasic.VBCodeProvider,system,
                     Version=1.0.5000.0, Culture=neutral,
                     PublicKeyToken=b77a5c561934e089"/>
            <compiler
               language="C#;Csharp"
               extension=".cs"
               type="Microsoft.CSharp.CSharpCodeProvider,system,
                     Version=1.0.5000.0,  Culture=neutral,
                     PublicKeyToken=b77a5c561934e089"/>
         </compilers>
         <assemblies>
            <add assembly="ADODB"/>
            <add assembly="*"/>
         </assemblies>
         <codeSubDirectories>
            <codeSubDirectory directoryName="/aspnet/code/mySubDir1"/>
            <codeSubDirectory directoryName="/aspnet/code/mySubDir2"/>
            <codeSubDirectory directoryName="/aspnet/code/mySubDir3"/>
         </codeSubDirectories>
         <buildProviders>
            <buildProvider
               extension=".mafx" type="BuildProviderType,
                          BuildProviderAssembly"
            />
        </buildProviders>
     </compilation>
   </system.web>
</configuration>

元素信息


配置节处理程序


CompilationSection


配置成员


Compilation


可配置的位置


Machine.config

根级别的 Web.config

应用程序级别的 Web.config

虚拟或物理目录级别的 Web.config


要求


Microsoft Internet 信息服务 (IIS) 5.0、5.1 或 6.0

.NET Framework 1.0、1.1、2.0

Visual Studio 2003 或 Visual Studio 2005

时间: 2024-10-20 03:10:48

compilation 元素(ASP.NET 设置架构)的相关文章

roleManager 元素(ASP.NET 设置架构),我是因为SSL弱密码(转)

为角色管理配置应用程序. 此元素是 .NET Framework 2.0 版中的新元素. configuration 元素(常规设置架构)  system.web 元素(ASP.NET 设置架构)    roleManager 元素(ASP.NET 设置架构) <roleManager cacheRolesInCookie="true|false" cookieName="name" cookiePath="/" cookieProtect

关于authentication 元素(ASP.NET 设置架构)

在配置节点中authentication 元素 配置 ASP.NET 身份验证方案,该方案用于识别查看 ASP.NET 应用程序的用户.   <authentication mode="[Windows|Forms|Passport|None]" > <forms>...</forms> <passport/> </authentication> Windows 域用户身份验证 VS2010 用 Page.User.Ident

新闻公布系统 (Asp.net 三层架构 )

2012年度课程设计---新闻公布系统(小结) -----Presented By [email protected] Tips:因本课程设计大部分代码皆有本人短时间仓促码成,界面恶心,代码丑陋.唯一长处便是:        所有代码都已贴上,而且所有都已凝视.另外与Asp.net教程结合恰当,通俗易懂,easy上手. 需求 新闻公布系统需求III NewsPublish(简称NP) 功能说明 本项目用于对新闻公布进行管理. 1.查看新闻 全部新闻按时间按降序排列: 用户登录后在自己主页能够查看

ASP.NET三层架构基础详细操作图文教程(转)

本文主要讲述Asp.net B/S结构 下基础的三层架构项目.三层主要是指的界面UI层,逻辑层,数据层.界面UI层:用于用户观看,体验的表示层.逻辑层:程序运行逻辑的封装层.数据层:程序数据相关操作的封装层. 每层当中还可以进行不同的详细划分,因为是基础教程,先领新手入门,所以不进行复杂的讲解.本来出自http://www.cnntec.com 作者:A.Z猫 转载请注明,违者必究.准备工具:Microsoft Visual Studio 2008 以下简称vs08Microsoft SQLSe

检测到在集成的托管管道模式下不适用的 ASP.NET 设置。

我们将ASP.NET程序从IIS6移植到IIS7,可能运行提示以下错误: HTTP 错误 500.23 - Internal Server Error 检测到在集成的托管管道模式下不适用的 ASP.NET 设置. 为什么会出现以上错误? 在IIS7的应用程序池有两种模式,一种是“集成模式”,一种是“经典模式”. 经典模式 则是我们以前习惯的IIS 6 的方式. 如果使用集成模式,那么对自定义的httpModules 和 httpHandlers 就要修改配置文件,需要将他们转移到<modules

检测到在集成的托管管道模式下不适用的ASP.NET设置的解决方法(转)

我们将ASP.NET程序从IIS6移植到IIS7,可能运行提示以下错误: HTTP 错误 500.23 - Internal Server Error 检测到在集成的托管管道模式下不适用的 ASP.NET 设置. 为什么会出现以上错误? 在IIS7的应用程序池有两种模式,一种是“集成模式”,一种是“经典模式”. 经典模式 则是我们以前习惯的IIS 6 的方式. 如果使用集成模式,那么对自定义的httpModules 和 httpHandlers 就要修改配置文件,需要将他们转移到<modules

Asp.Net 三层架构之泛型应用

一说到三层架构,我想大家都了解,这里就简单说下,Asp.Net三层架构一般包含:UI层.DAL层.BLL层,其中每层由Model实体类来传递,所以Model也算是三层架构之一了,例外为了数据库的迁移或者更OO点,DAL层就衍生出了IDAL接口.Model就是简单的对应数据库里面的类,DAL层就是主要操作数据库的方法了,BLL这个就看业务了.而DAL层大部分的方法都是差不多,无非就是几个Insert,Update,Delete,Select. 再来说下泛型,这个是2.0才开始有的,算是2.0中一个

ISAPI和CGI限制中没有ASP.NET v4.0 ; vS2013检测到在集成的托管管道模式下不适用的 ASP.NET 设置。

统确实自带了ASP.NET v4.0,但是ISAPI中没有这个选项,导致服务器开不起来 解决方法如下: 1.确保安装IIS时确实安装了ASP.NET,如果没有的话,勾上重新装一下,一般出现404.2时这么干 2.如果你是先装了IIS然后才装了.NET,那就需要把.NET再注册一下,一般出现404.17时这么干 命令是:C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i 重启IIS就可以看到了       S2013

asp.net 三层架构图文详解

什么是三层架构? 先说说饭店中的三层结构 服务员:待客/提交菜单 厨 师:取材/炒菜/交菜 采购员:采购 三层结构分析 (1)表示层 为用户提供交互式操作界面. (2)业务逻辑层 负责关键业务的处理,负责与表示层和数据访问层的数据传递. (3)数据访问层 实现对数据的保存和读取操作. 三层结构各层间的依整关系 -----高层依赖低层 三层结构各层间的数据传递关系 ---高层请求低层.低层响应高层 三层结构搭建方法 1.搭建表示层(创建一个Windows应用程序) 2.搭建业务逻辑层(类库) 3.