compilation-Element (ASP.NET-Einstellungsschema)

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

<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]"
   optimizeCompilations="[true|false]"
   targetFramework="2.0|3.0|3.5|4.0"
   assemblyPostProcessorType="assembly post processor, assembly"
>
   <assemblies>...</assemblies> 
   <buildProviders>...</buildProviders>
   <folderLevelBuildProviders>...</folderLevelBuildProviders>
   <codeSubDirectories>...</codeSubDirectories>
   <compilers>...</compilers>
   <expressionBuilders>...</expressionBuilders>
</compilation>

Attribute und Elemente

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

Attribute

Attribute

Beschreibungen

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

Der Standardwert 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.

Der Standardwert ist 1000.

maxBatchSize

Optionales Int32-Attribut.

Gibt die maximale Seitenanzahl pro Batchkompilierung an.

Der Standardwert 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.

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

optimizeCompilations

Optionales Boolean-Attribut.

Gibt an, ob die dynamische Kompilierung eine ganze Site neu kompiliert, wenn eine Datei der obersten Ebene geändert wird. Zu den Dateien der obersten Ebene gehören die Datei "Global.asax" und alle Dateien in den Ordnern "Bin" und "App_Code". Wenn True, werden nur geänderte Dateien neu kompiliert.

Der Standardwert ist False.

Weitere Informationen finden Sie unter Dynamische ASP.NET-Kompilierung.

strict

Optionales Boolean-Attribut.

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

Der Standardwert ist False.

targetFramework

Optionales String-Attribut.

Gibt die Version von .NET Framework an, die von der Website als Ziel verwendet wird, oder legt sie fest.

Der Standardwert ist Null.

Wenn dieses Attribut weggelassen wird, wird die Zielversion von anderen Einstellungen in der Datei Web.config und dem IIS-Anwendungspool bestimmt, dem die Website zugeordnet ist. Weitere Informationen finden Sie unter CompilationSection.TargetFramework und Festlegung von .NET Framework-Zielversionen für ASP.NET-Webprojekte.

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.

Der Standardwert ist False.

Untergeordnete Elemente

Element

Beschreibungen

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. Weitere Informationen finden Sie in den Ausführungen zur BuildProvider-Klasse.

codeSubDirectories

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

compilers

Definiert eine Auflistung von Compileroptionen.

HinweisHinweis
In .NET Framework 2.0 und späteren Versionen 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.

folderLevelBuildProviders

Definiert eine Auflistung von Buildanbietern, die zum Kompilieren benutzerdefinierter Ressourcendateien in bestimmten Ordnern verwendet werden. Buildanbieter werden Dateierweiterungen zugeordnet und verwendet, um Code von Dateien des angegebenen Typs zu generieren. Weitere Informationen finden Sie in den Ausführungen zur FolderLevelBuildProvider-Klasse.

Übergeordnete Elemente

Element

Beschreibungen

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 die Kompilierungseinstellungen für eine Anwendung konfiguriert werden.

<configuration>
   <system.web>
      <compilation defaultLanguage="VB"
         targetFramework="4.0"
         debug="true"
         numRecompilesBeforeAppRestart="15">
         <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 physikalischer 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

Referenz

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

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

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

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

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

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

configuration-Element (allgemeines Einstellungsschema)

System.Configuration

System.Web.Configuration

CompilationSection

Compilation

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

Festlegung von .NET Framework-Zielversionen für ASP.NET-Webprojekte

Weitere Ressourcen

Allgemeine Konfigurationseinstellungen (ASP.NET)

ASP.NET-Konfigurationseinstellungen

ASP.NET-Websiteverwaltung

ASP.NET-Konfigurationsdateien

ASP.NET-Konfigurations-API