compilation-Element (ASP.NET-Einstellungsschema)

Aktualisiert: November 2007

Konfiguriert alle Kompilierungseinstellungen, die ASP.NET zur Kompilierung von Anwendungen verwendet.

<configuration>-Element
  system.web-Element (ASP.NET-Einstellungsschema)
    compilation-Element (ASP.NET-Einstellungsschema)

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

Attribute und Elemente

In den folgenden Abschnitten werden Attribute, untergeordnete Elemente sowie übergeordnete Elemente beschrieben.

Attribute

Attribut

Beschreibung

assemblyPostProcessorType

Optionales String-Attribut.

Gibt einen Nachbearbeitungskompilierungsschritt für eine Assembly an, indem auf einen Assembly-Postprozessor verwiesen wird. Verwenden Sie das Format "Assembly-Postprozessor, Assembly". Der Assembly-Postprozessor muss die IAssemblyPostProcessor-Schnittstelle implementieren. Die Verwendung dieser Nachbearbeitungsmethode erzwingt das Debuggen bei der Kompilierung. Sie können dieses Verhalten jedoch durch das Festlegen eines bestimmten Bereitstellungsmodus ändern.

Dieses Attribut ist neu in .NET Framework, Version 2.0.

Der Standard ist eine leere Zeichenfolge.

batch

Optionales Boolean-Attribut.

Gibt an, ob die Batchverarbeitung unterstützt wird.

Wenn der Wert True ist, entfällt die Verzögerung durch die Kompilierung, die beim erstmaligen Zugriff auf die Datei erforderlich ist. Wenn dieses Attribut auf True festgelegt ist, führt ASP.NET eine Vorkompilierung aller noch nicht kompilierten Dateien im Batchmodus durch, was zu einer längeren Verzögerung beim erstmaligen Kompilieren der Dateien führt. Nach dieser anfänglichen Verzögerung tritt bei nachfolgenden Zugriffen auf die Datei jedoch keine Verzögerung durch die Kompilierung mehr auf.

Die Standardeinstellung ist True.

batchTimeout

Optionales TimeSpan-Attribut.

Gibt das Timeout für die Batchkompilierung in Sekunden an. Wenn die Kompilierung innerhalb des festgelegten Timeouts nicht abgeschlossen werden kann, kehrt der Compiler für die aktuelle Seite zum einfachen Kompilierungsmodus zurück.

Die Standardeinstellung ist "900" (15 Minuten).

debug

Optionales Boolean-Attribut.

Gibt an, ob Binärdateien für eine Debugversion anstatt für eine Retailversion kompiliert werden.

Die Standardeinstellung ist False.

defaultLanguage

Optionales String-Attribut.

Gibt an, welche Programmiersprache standardmäßig für dynamische Kompilierungsdateien verwendet wird, z. B. "C#" oder "PERL". Sprachnamen werden entweder mithilfe des compilers-Elements des system.codeDom-Abschnitts oder mithilfe des untergeordneten compilers-Elements dieses Elements definiert (veraltet).

Der Standardwert ist "vb".

explicit

Optionales Boolean-Attribut.

Gibt an, ob die explicit-Compileroption von Microsoft Visual Basic aktiviert werden soll. Wenn der Wert True ist, müssen alle Variablen müssen mithilfe einer Dim-Anweisung, einer Private-Anweisung, einer Public-Anweisung oder einer ReDim-Anweisung deklariert werden.

Die Standardeinstellung ist True.

maxBatchGeneratedFileSize

Optionales Int32-Attribut.

Gibt die maximale Gesamtgröße (in KB) der pro Batchkompilierung generierten Quelldateien an. Es ist generell nicht sinnvoll, eine umfangreiche Assembly in den Speicher zu laden, wenn nur ein kleiner Teil tatsächlich benötigt wird. Die Begrenzung stellt sicher, dass die Größe aller Assemblys in einem vernünftigen Rahmen bleibt, sodass die Anwendung von den Vorteilen des Batchmechanismus profitieren kann, ohne das System übermäßig zu belasten. Die Wirkungsweise dieses Attributs ähnelt der Wirkungsweise von maxBatchSize.

Die Standardeinstellung ist 1000.

maxBatchSize

Optionales Int32-Attribut.

Gibt die maximale Seitenanzahl pro Batchkompilierung an.

Die Standardeinstellung ist 1000.

numRecompilesBeforeAppRestart

Optionales Int32-Attribut.

Gibt die Anzahl der dynamischen Neukompilierungen von Ressourcen an, die möglich sind, bevor die Anwendung neu gestartet wird. Dieses Attribut kann global oder auf Anwendungs-, nicht jedoch auf Verzeichnisebene unterstützt werden.

Tipp

ASP.NET erhöht die NumRecompilesBeforeAppRestart-Eigenschaft jedes Mal, wenn eine Assembly ungültig wird und nicht gelöscht werden kann.

Der Standardwert ist 15.

strict

Optionales Boolean-Attribut.

Gibt an, ob die strict-Compileroption von Visual Basic aktiviert ist.

Die Standardeinstellung ist False.

tempDirectory

Optionales String-Attribut.

Gibt das für die Speicherung temporärer Dateien während der Kompilierung zu verwendende Verzeichnis an.

Der Standardwert ist eine leere Zeichenfolge ("").

Bei einer leeren Zeichenfolge und wenn der aktuelle Prozess über die erforderlichen Zugriffsberechtigungen verfügt, werden die Dateien im Verzeichnis %FrameworkInstallLocation%\Temporary ASP.NET Files gespeichert.

Beachten Sie, dass nur Prozesse mit hohen Vertrauenswürdigkeitsberechtigungen auf das Verzeichnis %FrameworkInstallLocation%\Temporary ASP.NET Files zugreifen können.

urlLinePragmas

Optionales Boolean-Attribut.

Gibt an, ob der Compiler anstelle von physischen Pfaden URLs verwenden soll.

Die Standardeinstellung ist False.

Untergeordnete Elemente

Element

Beschreibung

assemblies

Definiert eine Auflistung von Assemblynamen, die während der Kompilierung einer ASP.NET-Ressource verwendet werden.

buildproviders

Definiert eine Auflistung von Buildanbietern, die zum Kompilieren benutzerdefinierter Ressourcendateien verwendet werden.

Dieses Element ist neu in .NET Framework, Version 2.0.

codeSubDirectories

Definiert eine geordnete Auflistung von Unterverzeichnissen, die die zur Laufzeit kompilierten Dateien enthalten.

Dieses Element ist neu in .NET Framework, Version 2.0.

compilers

Definiert eine Auflistung von Compileroptionen.

Tipp

In .NET Framework, Version 2.0, wird dieses Element nicht mehr verwendet. An seine Stelle tritt das compilers-Element des system.codeDom-Abschnitts. Das untergeordnete compilers-Element des compilation-Elements ist jedoch immer noch gültig und überschreibt das compilers-Element, das sich im system.codedom-Abschnitt befindet.

expressionBuilders

Definiert eine Auflistung von Ressourcenzeichenfolgen, die bei der Kompilierung zu verwenden sind. Die Ressourcenzeichenfolgen verknüpfen Präfixe mit Ausdrucks-Generatoren.

Dieses Element ist neu in .NET Framework, Version 2.0.

Übergeordnete Elemente

Element

Beschreibung

configuration

Gibt das erforderliche Stammelement in jeder Konfigurationsdatei an, die von der Common Language Runtime und den .NET Framework-Anwendungen verwendet wird.

system.web

Gibt das Stammelement für die ASP.NET-Konfigurationseinstellungen in einer Konfigurationsdatei an und enthält Konfigurationselemente, die das Verhalten von ASP.NET-Webanwendungen konfigurieren.

Hinweise

Das compilation-Element konfiguriert alle Kompilierungseinstellungen, die ASP.NET zur Kompilierung von Anwendungen verwendet.

In .NET Framework, Version 2.0, ist das untergeordnete compilers-Element des compilation-Elements veraltet. Anstelle dieses Elements wird nun das compilers-Element des system.codeDom-Abschnitts verwendet. Das untergeordnete compilers-Element des compilation-Elements ist jedoch immer noch gültig und überschreibt das compilers-Element, das sich im system.codedom-Abschnitt befindet.

Standardkonfiguration

Das folgende compilation-Standardelement wird nicht explizit in der Datei Machine.config oder der Stammdatei Web.config konfiguriert. Es ist jedoch die von der Anwendung zurückgegebene Standardkonfiguration. Die Elemente werden der assemblies-Auflistung, der buildProviders-Auflistung und der expressionBuilders-Auflistung in der Stamm-Webkonfigurationsdatei Web.config hinzugefügt.

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

Das folgende Standardkompilierungselement wird in der Datei Machine.config von .NET Framework, Version 1.1, konfiguriert. Mit Ausnahme der Versionsnummern sind dieselben Einstellungen auch in .NET Framework, Version 1.0, vorhanden.

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

Beispiel

Im folgenden Codebeispiel wird veranschaulicht, wie Kompilierungseinstellungen für eine Anwendung konfiguriert werden.

<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>
           <add directoryName="mySubDir1"/>
           <add directoryName="mySubDir2"/>
           <add directoryName="mySubDir3"/>
         </codeSubDirectories>


         <buildProviders>
            <buildProvider 
               extension=".mafx" type="BuildProviderType, 
                          BuildProviderAssembly"
            />
        </buildProviders>
     </compilation>
   </system.web>
</configuration>

Elementinformationen

Konfigurationsabschnittshandler

CompilationSection

Konfigurationsmember

Compilation

Konfigurierbare Speicherorte

Machine.config

Web.config auf der Stammebene

Web.config auf der Anwendungsebene

Web.config auf der Ebene virtueller oder physischer Verzeichnisse

Anforderungen

Microsoft Internetinformationsdienste (IIS), Version 5.0, 5.1 oder 6.0

.NET Framework 1.0, 1.1, 2.0

Visual Studio 2003 oder Visual Studio 2005

Siehe auch

Aufgaben

Gewusst wie: Konfigurieren von bestimmten Verzeichnissen mit Standorteinstellungen

Gewusst wie: Sperren von ASP.NET-Konfigurationseinstellungen

Konzepte

Übersicht über die ASP.NET-Kompilierung

Übersicht über die Syntax von ASP.NET-Webseiten

ASP.NET-Konfigurationsdateihierarchie und Vererbung

Absichern der ASP.NET-Konfiguration

ASP.NET-Konfigurationsszenarios

Referenz

system.web-Element (ASP.NET-Einstellungsschema)

assemblies-Element für compilation (ASP.NET-Einstellungsschema)

buildProviders-Element für compilation (ASP.NET-Einstellungsschema)

codeSubDirectories-Element für compilation (ASP.NET-Einstellungsschema)

compilers-Element für compilation (ASP.NET-Einstellungsschema)

expressionBuilders-Element für compilation (ASP.NET-Einstellungsschema)

configuration-Element (allgemeines Einstellungsschema)

System.Configuration

System.Web.Configuration

CompilationSection

Compilation

Weitere Ressourcen

Allgemeine Konfigurationseinstellungen (ASP.NET)

ASP.NET-Konfigurationseinstellungen

Verwalten von ASP.NET-Websites

ASP.NET-Konfigurationsdateien

ASP.NET-Konfigurations-API