ASP.net Konfiguration


ASP.net Konfiguration

Hier werden die wichtigsten Elemente der web.config vorgestellt welche man zur Fehlersuche kennen sollte.
Eine von VisualStudio generierte Beispiel web.config ist zu finden unter: http://microsoft-edition.com/faq/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 für uns nicht wirklich relevant da diese die .net Konfiguration
für den ganzen Server enthält und somit für den Benutzer im SharedHosting meist nicht zugänglich ist. Dennoch sei erwähnt das in dieser Datei die später noch genauer angesprochenen Trustlevel konfiguriert sind.

Die Hierachy in einer Web.config hat im ungefähren dieses Schema:

<configuration>
<system.web>
//Konfiguration
<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 Entwickler lediglich die folgenden Zeilen aus der web.conig 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"
/>

Solange der Entwickler also das SessionState Element nicht überschreibt, werden seine Daten extern gespeichert und sind von einem Recycle nicht betroffen.


  • 21.02.2018 15:02:24