Konfiguration

Hier werden die wichtigsten Elemente der web.config vorgestellt welche man zur Fehlersuche kennen sollte.


Konfigurationsbeispiel
Eine von VisualStudio generierte Beispiel web.config ist zu finden unter: webconfig.htm. Für ASP.net gibt es 2 Konfigurationsdatein, eine globale machine.config und ein Applikationselement mit dem Namen Web.config. Beide sind hierachisch aufgebaute XML Konfigurationsdateien für ASP.net Anwendungen. Die machine.config ist normalerweise für kleine Anwendung nicht so relevant da diese die .net Konfiguration für den ganzen Server enthält und somit für Kunden z.B. im Shared Hosting nicht zugänglich ist. Dennoch sei erwähnt das in dieser Datei die (später noch genauer beschriebenen) Trustlevel konfiguriert sind. Die Hierachy in einer Web.config hat im ungefähren dieses Schema:

                      							
	<configuration> 
		<system.web>
		
		</system.web>
	</configuration>

                    

Die wichtigsten Elemente

<compilation>
Hiermit werden die Optionen für den Compiler definiert. Debug z.B. legt fest, das die Assemblys mit extra Debuginfos kompiliert wird. Das ist z.B. notwendig, um in der Fehlerausgabe eine Codeangabe zu erhalten. Hierdurch wird allerdings auch die Ausführung der Applikation langsamer und die Dateigröße der Assembly wird erhöht. Alternativ kann der Debugmode auch über die Pagedirektive in der einzelnen Seite aktiviert werden. Beispiel:

                        
<%@ Page language="c#" Codebehind="myFile.aspx.cs" AutoEventWireup="false" 
Inherits="namespace.klasse" debug="true” %> 
                      

 

<trace>
Hiermit kann die Ausgabe und das verhalten des Trace beeinflusst werden. Beispiel:

                        
	<configuration>
		<system.web>
			<trace enabled="false" pageOutput="true" requestLimit="15"/>
		<system.web>
	</configuration>
                          
                      

Alternativ kann der trace auch über die Pagedirektive in der einzelnen Seite aktiviert werden. Beispiel: <%@ Page language="c#" Codebehind="myFile.aspx.cs" AutoEventWireup="false" Inherits="namespace.klasse" trace="true” %>

<sessionState>
Das SessionState Element definiert den Ort, andem die SessionDaten gespeichert werden. Der Default Wert, welchen z.B. VisualStudio setzt, ist „InProc” d.h. die SessionDaten werden im aktuellen Prozesscontext gespeichert. Diese Option wäre im SharedHosting nicht wirklich optimal da durch einen AppPool Recycle alle SessionDaten verloren gehen und dieser wird in regelmäßigen Abständen durchgeführt. Daher wäre das externe speichern der Daten mehr als sinnvol. Dazu gibs den Wert “StateServer” im “mode” Attribut. Dieser stellt bei uns eine default Einstellung dar. Also muss der Kunde lediglich die folgenden Zeilen aus der web.config entfernen oder auskommentieren:

                        
<sessionState
	mode="InProc"
	stateConnectionString="tcpip=127.0.0.1:42424"
	sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
	cookieless="true"
	timeout="20"
/>
                      

Wenn z.B. im Shared Hosting bei 1und1 das SessionState Element nicht überschrieben wird, werden die SessionDaten extern gespeichert und sind von einem Applicationpool Recycle nicht betroffen.


  • 23.09.2018 08:48:58