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 |
|
Konfigurationsmember |
|
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)
Weitere Ressourcen
Allgemeine Konfigurationseinstellungen (ASP.NET)
ASP.NET-Konfigurationseinstellungen