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.
Hinweis
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.
Hinweis
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 |
|
Konfigurationsmember |
|
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)
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)