配置 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

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

  1. pages 元素(ASP.NET 设置架构)web.config 详解

    pages 元素(ASP.NET 设置架构)    buffer="[True|False]"   enableEventValidation="[True|False] ...

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

    为角色管理配置应用程序. 此元素是 .NET Framework 2.0 版中的新元素. configuration 元素(常规设置架构)  system.web 元素(ASP.NET 设置架构)   ...

  3. authorization 元素(ASP.NET 设置架构)

    authorization 元素(ASP.NET 设置架构) 其他版本 1(共 1)对本文的评价是有帮助 - 评价此主题 [本文档仅供预览,在以后的发行版中可能会发生更改.包含的空白主题用作占位符.] ...

  4. customErrors 元素(ASP.NET 设置架构)

    1.适用版本:.NET Framework 4 2.元素定义:为 ASP.NET 应用程序提供有关自定义错误消息的信息. 可以在应用程序文件层次结构中的任意级别上定义 customErrors 元素. ...

  5. 【配置】检测到在集成的托管管道模式下不适用的ASP.NET设置的解决方法(非简单设置为【经典】模式)。

      ×   检测到在集成的托管管道模式下不适用的ASP.NET设置的解决方法(非简单设置为[经典]模式). 我们将ASP.NET程序从IIS6移植到IIS7,可能运行提示以下错误: HTTP 错误 5 ...

  6. [翻译]了解ASP.NET底层架构(八)

    原文地址:http://www.cnblogs.com/tmfc/archive/2006/09/04/493304.html [翻译]了解ASP.NET底层架构(完) [翻译]了解ASP.NET底层 ...

  7. 元素绝对定位以后设置了高宽,a标签不能点击的原因总结

    元素绝对定位以后设置了高宽,a标签不能点击的原因: 1.元素内并无内容 2.背景是透明的,无任何背景图或者颜色 解决方法: 1.如果不是绝对定位元素的,可以用相对定位 2.给元素加透明的背景图 3.I ...

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

    我们将ASP.NET程序从IIS6移植到IIS7,可能运行提示以下错误: HTTP 错误 500.23 - Internal Server Error 检测到在集成的托管管道模式下不适用的 ASP.N ...

  9. HTTP 错误 500.23 - Internal Server Error 检测到在集成的托管管道模式下不适用的 ASP.NET 设置。

    检测到在集成的托管管道模式下不适用的ASP.NET设置的解决方法(非简单设置为[经典]模式). - CatcherX 2014-03-11 11:03 27628人阅读 评论(2) 收藏 举报  分类 ...

随机推荐

  1. SQL Server系统表讲解

    1. sysobjects http://www.cnblogs.com/atree/p/SQL-Server-sysobjects.html   2.syscomments http://www.c ...

  2. C#--方法的参数类型

    在C#中,方法的参数类型有四种: 值类型 引用类型 输出类型 数组型参数 值参数: 所谓值参数,就是利用值向方法传递参数时,编译程序给实参的值做一份拷贝,并将此拷贝传递给该方法,这样做的结果就是被调用 ...

  3. JQuery结合Ajax实现双击Table表格,使Table变成可编辑,并保存到数据库中

    本文属于原创,转载请标明出处! 近期在做项目时,要实现通过双击Table表格的TR,使Table行变成可编辑,来实现修改数据并保存到数据库中的功能,无需多说,直接贴代码吧.希望能得到各位同仁指正. f ...

  4. 获取aplicationContext对象,从而获取任何注入的对象

    在Servlet中 方法一: 从ServletContext 取出 Spring容器上下文 ApplicationContext applicationContext = (ApplicationCo ...

  5. css应用四

    1.Float属性详解 float属性定义元素在哪个方向浮动. Left 左浮动: Right 右浮动: None 默认,不浮动: Inherit 继承父元素float属性. 示例一: <div ...

  6. shopnc B2B2C商城 Nginx下开启伪静态

    B2B2C商城 Nginx下开启伪静态,伪静态开启后,对系统的SEO极为有利,可以最大限度让商城页面被搜索引擎抓取,但在实际安装中,很多客户在这块都会遇到各种各样的问题. 1. 编辑商城配置文件(da ...

  7. /dev/socket/vold exploit 本地提权漏洞

    EXPLOIT "0 asec create ../../../../../../../../xxxxx/xx/xx/xx 1 ext4 98235792350852308254872354 ...

  8. HTTP缓存机制梳理

    一般只对GET类型请求做缓存,对POST不做缓存 缓存协商 指浏览器和Web服务器之间对于是否使用浏览器端缓存的协商.对于较小的文件内容,由于缓存协商仍需要发送请求,所以吞吐率提高不大:但没有正文传输 ...

  9. keil Ax51中条件编译指令IF与$IF的区别

    keil A51中条件编译指令IF与$IF的区别:1.IF和$IF是不等价的,不要混淆了;2.带前缀$的条件编译$IF用法:(汇编器指示命令Assembler Directive)只能用来测试由$SE ...

  10. Qt浅谈之二十七进程间通信之QtDBus

    一.简介 DBus的出现,使得Linux进程间通信更加便捷,不仅可以和用户空间应用程序进行通信,而且还可以和内核的程序进行通信,DBus使得Linux变得更加智能,更加具有交互性.        DB ...