Apps configureren met behulp van configuratiebestanden
Notitie
Dit artikel is specifiek voor .NET Framework. Dit geldt niet voor nieuwere implementaties van .NET, waaronder .NET 6 en nieuwere versies.
.NET Framework biedt ontwikkelaars en beheerders controle en flexibiliteit over de manier waarop toepassingen worden uitgevoerd via configuratiebestanden. Configuratiebestanden zijn XML-bestanden die naar behoefte kunnen worden gewijzigd. Een beheerder kan bepalen welke beveiligde resources een toepassing kan openen, welke versies van assembly's een toepassing gaat gebruiken en waar externe toepassingen en objecten zich bevinden. Ontwikkelaars kunnen instellingen in configuratiebestanden plaatsen, waardoor het niet meer nodig is om een toepassing telkens opnieuw te compileren wanneer een instelling wordt gewijzigd. In deze sectie wordt beschreven wat er kan worden geconfigureerd en waarom het configureren van een toepassing nuttig kan zijn.
Notitie
Beheerde code kan de klassen in de System.Configuration naamruimte gebruiken om instellingen van de configuratiebestanden te lezen, maar niet om instellingen naar die bestanden te schrijven.
In dit artikel worden de syntaxis van configuratiebestanden beschreven en vindt u informatie over de drie typen configuratiebestanden: machine, toepassing en beveiliging.
Indeling van configuratiebestand
Configuratiebestanden bevatten elementen, die logische gegevensstructuren zijn die configuratiegegevens instellen. In een configuratiebestand gebruikt u tags om het begin en einde van een element te markeren. Het element <runtime>
bestaat bijvoorbeeld uit <runtime>
onderliggende elementen</runtime>
. Een leeg element wordt geschreven als <runtime/>
of <runtime></runtime>
.
Net als bij alle XML-bestanden is de syntaxis in configuratiebestanden hoofdlettergevoelig.
U geeft configuratie-instellingen op met behulp van vooraf gedefinieerde kenmerken, die naam-/waardeparen zijn binnen de starttag van een element. In het volgende voorbeeld worden twee kenmerken (version
en href
) opgegeven voor het <codeBase>
-element, waarmee wordt aangegeven waar de runtime een assembly kan vinden (zie Locatie van een assembly opgeven).
<codeBase version="2.0.0.0"
href="http://www.litwareinc.com/myAssembly.dll"/>
Computerconfiguratiebestanden
Het configuratiebestand van de machine, Machine.config, bevat instellingen die van toepassing zijn op een hele computer. Dit bestand bevindt zich in het runtime-installatiepad van de %%\Config-map. Machine.config bevat configuratie-instellingen voor machinebrede assemblybinding, ingebouwde externe kanalenen ASP.NET.
Het configuratiesysteem zoekt eerst in het configuratiebestand voor de <appSettings> element en andere configuratiesecties die een ontwikkelaar kan definiëren. Vervolgens wordt in het configuratiebestand van de toepassing gezocht. Als u het computerconfiguratiebestand beheerbaar wilt houden, kunt u deze instellingen het beste in het configuratiebestand van de toepassing plaatsen. Als u de instellingen echter in het configuratiebestand van de computer plaatst, kan uw systeem beter worden onderhouden. Als u bijvoorbeeld een onderdeel van derden hebt dat zowel uw clienttoepassing als de servertoepassing gebruikt, is het eenvoudiger om de instellingen voor dat onderdeel op één plaats te plaatsen. In dit geval is het configuratiebestand van de computer de juiste plaats voor de instellingen, dus u hebt niet dezelfde instellingen in twee verschillende bestanden.
Notitie
Als u een toepassing implementeert met XCOPY, worden de instellingen in het configuratiebestand van de computer niet gekopieerd.
Zie How the Runtime Locates Assembly'svoor meer informatie over hoe de algemene taalruntime gebruikmaakt van het computerconfiguratiebestand voor assemblybinding.
Toepassingsconfiguratiebestanden
Een toepassingsconfiguratiebestand bevat instellingen die specifiek zijn voor een app. Dit bestand bevat configuratie-instellingen die de Common Language Runtime leest (zoals assembly-bindingbeleid, externe objecten, enzovoort) en instellingen die door de app gelezen kunnen worden.
De naam en locatie van het toepassingsconfiguratiebestand zijn afhankelijk van de host van de app. Dit kan een van de volgende zijn:
Uitvoerbare app die wordt gehost.
Deze apps hebben twee configuratiebestanden: een bronconfiguratiebestand dat tijdens de ontwikkeling wordt gewijzigd door de ontwikkelaar en een uitvoerbestand dat met de app wordt gedistribueerd.
Standaard is de naam van het bronconfiguratiebestand App.config. Wanneer u een .NET Framework-project maakt in Visual Studio, wordt automatisch een App.config-bestand toegevoegd aan het project. U kunt een bestand ook handmatig toevoegen door Bestand>Nieuw bestandte selecteren. Plaats het App.config bestand in de projectmap en stel de eigenschap Copy To Output Directory in op Copy always of Copy als nieuwere.
Als u het uitvoerconfiguratiebestand wilt maken dat met de app is geïmplementeerd, kopieert Visual Studio het bronconfiguratiebestand naar de map waarin de gecompileerde assembly wordt geplaatst. Dit bestand heeft de naam <uwappname>.exe.config. Een app met de naam myApp.exe heeft bijvoorbeeld een uitvoerconfiguratiebestand met de naam myApp.exe.config.
In sommige gevallen kan Visual Studio het uitvoerconfiguratiebestand wijzigen. Zie Omleidingsversies op app-niveauvoor meer informatie.
ASP.NET-gehoste app.
Zie ASP.NET Configuratie-instellingenvoor meer informatie over ASP.NET configuratiebestanden.
Beveiligingsconfiguratiebestanden
Beveiligingsconfiguratiebestanden bevatten informatie over de codegroephiërarchie en machtigingensets die zijn gekoppeld aan een beleidsniveau. U wordt ten zeerste aangeraden het hulpprogramma Code Access Security Policy (Caspol.exe) te gebruiken om beveiligingsbeleid te wijzigen om ervoor te zorgen dat beleidswijzigingen de beveiligingsconfiguratiebestanden niet beschadigen.
Notitie
Vanaf .NET Framework 4 zijn de beveiligingsconfiguratiebestanden alleen aanwezig als het beveiligingsbeleid is gewijzigd.
De beveiligingsconfiguratiebestanden bevinden zich op de volgende locaties:
Configuratiebestand voor ondernemingsbeleid: %runtime-installatiepad%\Config\Enterprisesec.config
Configuratiebestand voor machinebeleid: %runtime-installatiepad%\Config\Security.config
Configuratiebestand voor gebruikersbeleid: %USERPROFILE%\Application Data\Microsoft\CLR-beveiligingsconfiguratie\vxx.xx\Security.config