Das Verhalten einer ASP.NET-Anwendung wird durch unterschiedliche Einstellungen in den folgenden beiden Konfigurationsdateien bestimmt:
machine.config
web.config
Die Datei machine.config enthält Standardwerte und maschinenspezifische Werte für alle unterstützten Einstellungen. Der Computer wird vom Systemadministrator eingerichtet und Anwendungen können im Allgemeinen nicht auf diese Datei zugreifen.
Eine Anwendung kann jedoch den Standardwert überschreiben, indem sie in ihrem Stammordner eine web.config-Datei erstellt. Die Datei web.config ist eine Teilmenge der Datei machine.config.
Wenn die Anwendung Unterverzeichnisse enthält, kann sie für jeden Ordner eine web.config-Datei definieren. Der Umfang jedes Profils wird hierarchisch von oben nach unten bestimmt.
Jede web.config-Datei kann alle oben definierten Einstellungen lokal erweitern, einschränken oder überschreiben.
Visual Studio generiert für jedes Projekt eine standardmäßige web.config-Datei. Die Anwendung kann ohne eine web.config-Datei ausgeführt werden. Wir können eine Anwendung jedoch nicht ohne eine web.config-Datei debuggen.
Das folgende Bild zeigt ein Beispielbeispiel für den Solution Explorer, der im Webservices-Tutorial verwendet wird:
In dieser Anwendung gibt es zwei web.config-Dateien, die dem Webdienst und der Website entsprechen, die den Webdienst aufruft.
Das Konfigurationselement in der Datei web.config dient als Stammknoten. Die Informationen in diesem Element sind in zwei Hauptbereiche unterteilt: den Deklarationsbereich für den Konfigurationsabschnittshandler und den Bereich für die Konfigurationsabschnittseinstellungen.
Der folgende Codeausschnitt zeigt die grundlegende Syntax einer Konfigurationsdatei:
<configuration> <!-- Konfigurationsbereich für Abschnittshandler --> <configSections> <section name="section1" type="section1Handler" /> <section name="section2" type="section2Handler" /> </ configSections> <!-- Konfigurationsabschnitt-Einstellungsbereich --> <section1> <s1Setting1 attribute1="attr1" /> </section1> <section2> <s2Setting1 attribute1="attr1" /> </section2> <system.web> <authentication mode="Windows" /> </system.web> </configuration>
Deklarationen für Konfigurationsabschnittshandler sind in Tags enthalten. Jeder Konfigurationshandler gibt den Namen des Konfigurationsabschnitts an und ist in einer Datei enthalten, die einige Konfigurationsdaten bereitstellt. Es hat die folgende grundlegende Syntax:
<configSections> <section /> <sectionGroup /> <remove /> <clear/> </configSections>
Es besteht aus folgenden Elementen:
Löschen – Alle Verweise auf geerbte Abschnitte und Abschnittsgruppen.
Entfernen – Entfernt einen geerbten referenzierten Abschnitt und eine Abschnittsgruppe.
Abschnitt – Definiert die Zuordnung zwischen Konfigurationsabschnittshandlern und Konfigurationselementen.
Abschnittsgruppe – Sie definiert die Zuordnung zwischen einem Konfigurationsabschnittshandler und einem Konfigurationsabschnitt.
Anwendungseinstellungen ermöglichen die Speicherung von Name-Wert-Paaren für Anwendungen mit schreibgeschütztem Zugriff. Sie könnten beispielsweise eine benutzerdefinierte Anwendungseinstellung wie folgt definieren:
<configuration> <appSettings> <add key="Application Name" value="MyApplication" /> </appSettings> </configuration>
Sie können beispielsweise auch das Datenpaar aus ISBN-Nummer und Name eines Buchs speichern:
<configuration> <appSettings> <add key="appISBN" value="0-273-68726-3" /> <add key="appBook" value="Corporate Finance" /> </appSettings> </configuration>
Die Verbindungszeichenfolge zeigt die Datenbankverbindungszeichenfolge an, die für die Website verwendet werden kann. Zum Beispiel:
<connectionStrings> <add name="ASPDotNetStepByStepConnectionString" ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0; Datenquelle=E:\projectsdatacaching / datacachingApp_DataASPDotNetStepByStep.mdb" anbieterName="System.Data. OleDb" /> <add name="booksConnectionString" ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0; Datenquelle=C: databindingApp_Databooks.mdb" ProviderName="System.Data.OleDb" /> </connectionStrings>
Das system.web-Element gibt das Stammelement für den ASP.NET-Konfigurationsabschnitt an und enthält Konfigurationselemente, die die ASP.NET-Webanwendung konfigurieren und den Betrieb der Anwendung steuern.
Es steuert die meisten der häufigeren Konfigurationselemente, die angepasst werden müssen. Die grundlegende Syntax dieses Elements lautet wie folgt:
<system.web> <anonymousIdentification> <authentication> <authorization> <browserCaps> <caching> <clientTarget> <compilation> <customErrors> <deployment> <deviceFilters> <globization> <healthMonitoring> <hostingEnvironment> <httpCookies> <httpHandlers> <httpModules> <httpRuntime> <identity> <machineKey> <membership> <mobileControls> <pages> <processModel> <profile> <roleManager> <securityPolicy> <sessionPageState> <sessionState> <siteMap> <trace> <trust> <urlMappings> <webControls> <webParts> <webServices> <xhtmlConformance > </system.web>
Die folgende Tabelle enthält eine kurze Beschreibung der Unterelemente einiger häufig verwendeter system.web -Elemente:
Dies wird verwendet, um nicht authentifizierte Benutzer zu identifizieren, wenn eine Bestätigung der Benutzeridentität erforderlich ist.
Es wird durch die Konfigurationsautorisierung unterstützt. Die grundlegende Syntax lautet:
<authorization> <allow .../> <deny .../> </authorization>
Es konfiguriert Cache-Einstellungen. Die grundlegende Syntax ist:
<caching> <cache>...</cache> <outputCache>...</outputCache> <outputCacheSettings>...</outputCacheSettings> <sqlCacheDependency>...</sqlCacheDependency> </caching>
Es definiert eine benutzerdefinierte Fehlermeldung. Die grundlegende Syntax ist:
<customErrors defaultRedirect="url" mode="On|Off|RemoteOnly"> <error./> </customErrors>
Es definiert die Konfigurationseinstellungen, die für die Bereitstellung verwendet werden. Die grundlegende Syntax lautet wie folgt:
<deployment Retail="true|false" />
Es definiert Konfigurationseinstellungen für die Hosting-Umgebung. Die grundlegende Syntax lautet wie folgt:
<hostingEnvironment emptyTimeout="HH:MM:SS"shadowCopyBinAssemblies="true|false" ShutdownTimeout="number" urlMetadataSlidingExpiration="HH:MM:SS" />
Es wird verwendet, um den Authentifizierungsmechanismus für die Anwendung zu konfigurieren. Die grundlegende Syntax lautet wie folgt:
<identity impersonate="true|false" userName="domainusername" passwort="<sicheres Passwort>"/>
Es wird verwendet, um den Schlüssel zu konfigurieren, der für das Formularauthentifizierungscookie zum Verschlüsseln und Entschlüsseln von Daten verwendet wird.
Es ermöglicht auch die Konfiguration von Authentifizierungsschlüsseln, um Nachrichtenauthentifizierungsprüfungen für Ansichtsstatusdaten und Formularauthentifizierungstickets durchzuführen. Die grundlegende Syntax lautet:
<machineKey validationKey="AutoGenerate,IsolateApps" [String] validation="HMACSHA256" |. HMACSHA256 |. alg:algorithm_name] " [Auto | DES | 3DES | AES |. alg:algorithm_name] />
Es dient zur Konfiguration der Verwaltung und zur Authentifizierung von Benutzerparametern. Die grundlegende Syntax lautet:
<membership defaultProvider="provider name" userIsOnlineTimeWindow="number ofminutes" hashAlgorithmType="SHA1"> <providers>...</providers> </membership>
Es bietet eine spezifische Konfiguration von Webseiten. Die grundlegende Syntax lautet:
<pages asyncTimeout="number" autoEventWireup="[True|False]" buffer="[True|False]" clientIDMode="[AutoID|Predictable|Static]" CompilationMode="[Always|Auto|Never]" controlRenderingCompatibilityVersion=" [3.5|4.0]" enableEventValidation="[True|False]" enableSessionState="[True|False|ReadOnly]" enableViewState="[True|False]" enableViewStateMac="[True|False]" keepScrollPositionOnPostBack="[True|False]" masterPageFile="file path" maxPageStateFieldLength="number" pageBaseType ="Typname, Assembly" pageParserFilterType="string" smartNavigation="[True|False]" styleSheetTheme="string" theme="string" userControlBaseType="typename" activateRequest="[True|False]" viewStateEncryptionMode="[Always|Auto|Never]" > <controls>.. .</controls> <namespaces>...</namespaces> <tagMapping>...</tagMapping> <ignoreDeviceFilters>...</ignoreDeviceFilters> </pages>
Es wird zum Konfigurieren von Benutzerprofilparametern verwendet. Die grundlegende Syntax lautet:
<profile aktiviert="true|false" inherits="vollständig qualifizierte Typreferenz" AutomaticSaveEnabled="true|false" defaultProvider="Anbietername"> <properties>...</properties> <providers>...</providers > </profile>
Konfigurieren Sie Einstellungsinformationen für Benutzerrollen. Die grundlegende Syntax lautet:
<roleManager cacheRolesInCookie="true|false" cookieName="name" cookiePath="/" cookieProtection="All|Encryption|Validation|None" cookieRequireSSL="true|false " cookieSlidingExpiration="true|false " cookieTimeout="Anzahl der Minuten " createPersistentCookie="true|false" defaultProvider="provider name" domain="cookie domain"> aktiviert="true|false" maxCachedResults="maximale Anzahl zwischengespeicherter Rollennamen" <providers>...</providers> </roleManager>
Wird zum Konfigurieren von Sicherheitsrichtlinien verwendet. Die grundlegende Syntax lautet:
<securityPolicy> <trustLevel /> </securityPolicy>
Es definiert Zuordnungen zum Ausblenden ursprünglicher URLs und zum Bereitstellen benutzerfreundlicherer URLs. Die grundlegende Syntax lautet:
<urlMappings aktiviert="true|false"> <add.../> <clear /> <remove.../> </urlMappings>
Es stellt den Namen des freigegebenen Speicherorts für Client-Skripts bereit. Die grundlegende Syntax lautet:
<webControls clientScriptsLocation="String" />
Wird zum Konfigurieren von Webdiensten verwendet.