Voorbeelden van toepassings- en servicemanifesten voor betrouwbare services
Hier volgen voorbeelden van de toepassings- en servicemanifesten voor een Service Fabric-toepassing met een ASP.NET Core-webfront-end en een stateful back-end. Het doel van deze voorbeelden is om te laten zien welke instellingen beschikbaar zijn en hoe u deze kunt gebruiken. Deze toepassings- en servicemanifesten zijn gebaseerd op de Service Fabric .NET-snelstartmanifesten .
De volgende functies worden weergegeven:
Manifest | Functies |
---|---|
Toepassingsmanifest | resourcebeheer, voer een service uit als een lokaal beheerdersaccount, pas een standaardbeleid toe op alle servicecodepakketten, maak gebruikers- en groeps-principals, deel een gegevenspakket tussen service-exemplaren, overschrijf service-eindpunten |
Servicemanifest FrontEndService | Een script uitvoeren bij het opstarten van de service, een HTTPS-eindpunt definiëren |
Servicemanifest BackEndService | Een configuratiepakket declareren, een gegevenspakket declareren, een eindpunt configureren |
Zie manifestelementen van toepassingsmanifesten, manifestelementen van votingWeb en manifestelementen van de VotingData-service voor meer informatie over specifieke XML-elementen.
Manifest van de toepassing
<?xml version="1.0" encoding="utf-8"?>
<ApplicationManifest xmlns:xsd="https://www.w3.org/2001/XMLSchema" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" ApplicationTypeName="VotingType" ApplicationTypeVersion="1.0.0" xmlns="http://schemas.microsoft.com/2011/01/fabric">
<Parameters>
<Parameter Name="VotingData_MinReplicaSetSize" DefaultValue="3" />
<Parameter Name="VotingData_PartitionCount" DefaultValue="1" />
<Parameter Name="VotingData_TargetReplicaSetSize" DefaultValue="3" />
<Parameter Name="VotingWeb_InstanceCount" DefaultValue="-1" />
<Parameter Name="CpuCores" DefaultValue="2" />
<Parameter Name="Memory" DefaultValue="4084" />
<Parameter Name="BlockIOWeight" DefaultValue="200" />
<Parameter Name="MaximumIOBandwidth" DefaultValue="1024" />
<Parameter Name="MemoryReservationInMB" DefaultValue="1024" />
<Parameter Name="MemorySwapInMB" DefaultValue="4084"/>
<Parameter Name="Port" DefaultValue="8081" />
<Parameter Name="Protocol" DefaultValue="tcp" />
<Parameter Name="Type" DefaultValue="internal" />
</Parameters>
<!-- Import the ServiceManifest from the ServicePackage. The ServiceManifestName and ServiceManifestVersion
should match the Name and Version attributes of the ServiceManifest element defined in the
ServiceManifest.xml file. -->
<ServiceManifestImport>
<ServiceManifestRef ServiceManifestName="VotingDataPkg" ServiceManifestVersion="1.0.0" />
<!-- Override endpoints declared in the service manifest. -->
<ResourceOverrides>
<Endpoints>
<Endpoint Name="DataEndpoint" Port="[Port]" Protocol="[Protocol]" Type="[Type]" />
</Endpoints>
</ResourceOverrides>
<!-- Policies to be applied to the imported service manifest. -->
<Policies>
<!-- Set resource governance at the service package level. -->
<ServicePackageResourceGovernancePolicy CpuCores="[CpuCores]" MemoryInMB="[Memory]"/>
<!-- Set resource governance at the code package level. -->
<ResourceGovernancePolicy CodePackageRef="Code" CpuPercent="10" MemoryInMB="[Memory]" BlockIOWeight="[BlockIOWeight]"
MaximumIOBandwidth="[MaximumIOBandwidth]" MaximumIOps="[MaximumIOps]" MemoryReservationInMB="[MemoryReservationInMB]"
MemorySwapInMB="[MemorySwapInMB]"/>
<!-- Share the data package across multiple instances of the VotingData service-->
<PackageSharingPolicy PackageRef="Data"/>
<!-- Give read rights on the "DataEndpoint" endpoint to the Customer2 account.-->
<SecurityAccessPolicy GrantRights="Read" PrincipalRef="Customer2" ResourceRef="DataEndpoint" ResourceType="Endpoint"/>
</Policies>
</ServiceManifestImport>
<!-- Import the ServiceManifest from the ServicePackage. The ServiceManifestName and ServiceManifestVersion
should match the Name and Version attributes of the ServiceManifest element defined in the
ServiceManifest.xml file. -->
<ServiceManifestImport>
<ServiceManifestRef ServiceManifestName="VotingWebPkg" ServiceManifestVersion="1.0.0" />
<!-- Policies to be applied to the imported service manifest. -->
<Policies>
<!-- Run the setup entry point (defined in the imported service manifest) as the SetupAdminUser account
(declared in the following Principals section). -->
<RunAsPolicy CodePackageRef="Code" UserRef="SetupAdminUser" EntryPointType="Setup" />
</Policies>
</ServiceManifestImport>
<DefaultServices>
<!-- The section below creates instances of service types, when an instance of this
application type is created. You can also create one or more instances of service type using the
ServiceFabric PowerShell module.
The attribute ServiceTypeName below must match the name defined in the imported ServiceManifest.xml file. -->
<Service Name="VotingData">
<StatefulService ServiceTypeName="VotingDataType" TargetReplicaSetSize="[VotingData_TargetReplicaSetSize]" MinReplicaSetSize="[VotingData_MinReplicaSetSize]">
<UniformInt64Partition PartitionCount="[VotingData_PartitionCount]" LowKey="0" HighKey="25" />
</StatefulService>
</Service>
<Service Name="VotingWeb" ServicePackageActivationMode="ExclusiveProcess">
<StatelessService ServiceTypeName="VotingWebType" InstanceCount="[VotingWeb_InstanceCount]">
<SingletonPartition />
</StatelessService>
</Service>
</DefaultServices>
<!-- Define users and groups required to run the services and access resources. Principals are used in the Policies section(s). -->
<Principals>
<!-- Declare a set of groups as security principals, which can be referenced in policies. Groups are useful if there are multiple users
for different service entry points and they need to have certain common privileges that are available at the group level. -->
<Groups>
<!-- Create a group that has administrator privileges. -->
<Group Name="LocalAdminGroup">
<Membership>
<SystemGroup Name="Administrators" />
</Membership>
</Group>
</Groups>
<Users>
<!-- Declare a user and add the user to the Administrators system group. The SetupAdminUser account is used to run the
setup entry point of the VotingWebPkg code package (described in the preceding Policies section).-->
<User Name="SetupAdminUser">
<MemberOf>
<SystemGroup Name="Administrators" />
</MemberOf>
</User>
<!-- Create a user. Local user accounts are created on the machines where the application is deployed. By default, these accounts
do not have the same names as those specified here. Instead, they are dynamically generated and have random passwords. -->
<User Name="Customer1" >
<MemberOf>
<!-- Add the user to the local administrators group.-->
<Group NameRef="LocalAdminGroup" />
</MemberOf>
</User>
<!-- Create a user as a local user with the specified account name and password. Local user accounts are created on the machines
where the application is deployed. -->
<User Name="Customer2" AccountType="LocalUser" AccountName="Customer1" Password="MyPassword">
<MemberOf>
<!-- Add the user to the local administrators group.-->
<Group NameRef="LocalAdminGroup" />
</MemberOf>
</User>
<!-- Create a user as NetworkService. -->
<User Name="MyDefaultAccount" AccountType="NetworkService" />
</Users>
</Principals>
<!-- Policies applied at the application level. -->
<Policies>
<!-- Specify a default user account for all code packages that don’t have a specific RunAsPolicy defined in
the ServiceManifestImport section(s). -->
<DefaultRunAsPolicy UserRef="MyDefaultAccount" />
</Policies>
</ApplicationManifest>
VotingWeb-servicemanifest
<?xml version="1.0" encoding="utf-8"?>
<ServiceManifest Name="VotingWebPkg"
Version="1.0.0"
xmlns="http://schemas.microsoft.com/2011/01/fabric"
xmlns:xsd="https://www.w3.org/2001/XMLSchema"
xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance">
<ServiceTypes>
<!-- This is the name of your ServiceType.
This name must match the string used in RegisterServiceType call in Program.cs. -->
<StatelessServiceType ServiceTypeName="VotingWebType" />
</ServiceTypes>
<!-- Code package is your service executable. -->
<CodePackage Name="Code" Version="1.0.0">
<!-- A privileged entry point that by default runs with the same credentials as Service Fabric (typically the NetworkService account) before
any other entry point. Use the setup entry point to set system environment variables, give the account running the service (NETWORK SERVICE, by default)
access to a certificate's private key, or perform other setup tasks. In the application manifest, you can change the security permissions to run the startup script
under a local system account or an administrator account. -->
<SetupEntryPoint>
<ExeHost>
<!-- The setup script to run. -->
<Program>Setup.bat</Program>
<!-- Pass arguments to the script when it runs.-->
<Arguments>MyValue</Arguments>
<!-- The working directory for the process in the code package on the node where the application is deployed. CodePackage sets the working directory to be
the root of the code package regardless of where the EXE is defined in the code package directory. This is where the processes can write the data. Writing data
in the code package or code base is not recommended as those folders could be shared between different application instances and may get deleted.-->
<WorkingFolder>CodePackage</WorkingFolder>
<!-- Warning! Do not use console redirection in a production application, only use it for local development and debugging. Redirects console output from the startup
script to an output file in the application folder called "log" on the cluster node where the application is deployed and run. Also set the number of output files
to retain and the maximum file size (in KB). -->
<ConsoleRedirection FileRetentionCount="10" FileMaxSizeInKb="20480"/>
</ExeHost>
</SetupEntryPoint>
<EntryPoint>
<ExeHost>
<Program>VotingWeb.exe</Program>
<!-- The working directory for the process in the code package on the node where the application is deployed. CodePackage sets the working directory to be
the root of the code package regardless of where the EXE is defined in the code package directory. This is where the processes can write the data. Writing data
in the code package or code base is not recommended as those folders could be shared between different application instances and may get deleted.-->
<WorkingFolder>CodePackage</WorkingFolder>
</ExeHost>
</EntryPoint>
</CodePackage>
<!-- Config package is the contents of the Config directory under PackageRoot that contains an
independently-updateable and versioned set of custom configuration settings for your service. -->
<ConfigPackage Name="Config" Version="1.0.0" />
<Resources>
<Endpoints>
<!-- Configure a HTTPS endpoint on port 443. This endpoint is used by the communication listener to obtain the port on which to
listen. Please note that if your service is partitioned, this port is shared with
replicas of different partitions that are placed in your code. -->
<Endpoint Protocol="https" Name="EndpointHttps" Type="Input" Port="443" />
</Endpoints>
</Resources>
</ServiceManifest>
VotingData-servicemanifest
<?xml version="1.0" encoding="utf-8"?>
<ServiceManifest Name="VotingDataPkg"
Version="1.0.0"
xmlns="http://schemas.microsoft.com/2011/01/fabric"
xmlns:xsd="https://www.w3.org/2001/XMLSchema"
xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance">
<ServiceTypes>
<!-- This is the name of your ServiceType.
This name must match the string used in RegisterServiceType call in Program.cs. -->
<StatefulServiceType ServiceTypeName="VotingDataType" HasPersistedState="true" />
</ServiceTypes>
<!-- Code package is your service executable. -->
<CodePackage Name="Code" Version="1.0.0">
<EntryPoint>
<ExeHost>
<Program>VotingData.exe</Program>
<!-- The working directory for the process in the code package on the node where the application is deployed. CodePackage sets the working directory to be
the root of the code package regardless of where the EXE is defined in the code package directory. This is where the processes can write the data. Writing data
in the code package or code base is not recommended as those folders could be shared between different application instances and may get deleted.-->
<WorkingFolder>CodePackage</WorkingFolder>
</ExeHost>
</EntryPoint>
</CodePackage>
<!-- Declares a folder, named by the Name attribute, under PackageRoot that contains a Settings.xml file. This file contains sections of user-defined,
key-value pair settings that the process can read back at run time. During an upgrade, if only the ConfigPackage version has changed,
then the running process is not restarted. Instead, a callback notifies the process that configuration settings have changed so they can be reloaded dynamically. -->
<ConfigPackage Name="Config" Version="1.0.0" />
<!-- Declares a folder, named by the Name attribute, under PackageRoot which contains static data files to be consumed by the process at run time. -->
<DataPackage Name="Data" Version="1.0.0"/>
<Resources>
<Endpoints>
<!-- Define an internal (used for intra-application communication) TCP endpoint. Since no port is specified, one is created and assigned dynamically
to the service.-->
<Endpoint Name="DataEndpoint" Protocol="tcp" Type="Internal" />
</Endpoints>
</Resources>
</ServiceManifest>
Toepassingsmanifestelementen
ApplicationManifest-element
Beschrijft declaratief het toepassingstype en de versie. Naar een of meer servicemanifesten van de samenstellende services wordt verwezen om een toepassingstype op te stellen. Configuratie-instellingen van de samenstellende services kunnen worden overschreven met behulp van geparameteriseerde toepassingsinstellingen. Standaardservices, servicesjablonen, principals, beleid, diagnostische instellingen en certificaten kunnen ook worden gedeclareerd op toepassingsniveau. Zie ApplicationManifest-element voor meer informatie
Parameterelement
Declareert de parameters die worden gebruikt in dit toepassingsmanifest. De waarde van deze parameters kan worden opgegeven wanneer de toepassing wordt geïnstantieerd en kan worden gebruikt om de configuratie-instellingen voor toepassingen of services te overschrijven. Zie Het element Parameters voor meer informatie
Parameterelement
Een toepassingsparameter die in dit manifest moet worden gebruikt. De parameterwaarde kan worden gewijzigd tijdens de instantiëring van de toepassing of, als er geen waarde wordt opgegeven, wordt de standaardwaarde gebruikt. Zie Parameterelement voor meer informatie
ServiceManifestImport Element
Hiermee importeert u een servicemanifest dat is gemaakt door de serviceontwikkelaar. Er moet een servicemanifest worden geïmporteerd voor elke samenstellende service in de toepassing. Configuratieoverschrijvingen en beleidsregels kunnen worden gedeclareerd voor het servicemanifest. Zie Het element ServiceManifestImport voor meer informatie
ServiceManifestRef Element
Hiermee importeert u het servicemanifest op basis van referentie. Momenteel moet het servicemanifestbestand (ServiceManifest.xml) aanwezig zijn in het buildpakket. Zie Het element ServiceManifestRef voor meer informatie
ResourceOverrides Element
Hiermee geeft u resource-onderdrukkingen op voor eindpunten die zijn gedeclareerd in servicemanifestresources. Zie het element ResourceOverrides voor meer informatie
Element Eindpunten
De eindpunten die moeten worden overschreven. Zie Het element Eindpunten voor meer informatie
Eindpuntelement
Het eindpunt, gedeclareerd in het servicemanifest, om te overschrijven. Zie Eindpuntelement voor meer informatie
Het element Beleid
Beschrijft beleidsregels (eindpuntbinding, pakketdeling, run-as- en beveiligingstoegang) die moeten worden toegepast op het geïmporteerde servicemanifest. Zie Het element Beleid voor meer informatie
ServicePackageResourceGovernancePolicy Element
Definieert het resourcebeheerbeleid dat wordt toegepast op het niveau van het hele servicepakket. Zie Het element ServicePackageResourceGovernancePolicy voor meer informatie
ResourceGovernancePolicy Element
Hiermee geeft u resourcelimieten op voor een codepackage. Zie het element ResourceGovernancePolicy voor meer informatie
PackageSharingPolicy-element
Geeft aan of een code, configuratie of gegevenspakket moet worden gedeeld tussen service-exemplaren van hetzelfde servicetype. Zie PackageSharingPolicy-element voor meer informatie
SecurityAccessPolicy Element
Verleent toegangsmachtigingen aan een principal voor een resource (zoals een eindpunt) die is gedefinieerd in een servicemanifest. Normaal gesproken is het erg handig om de toegang van services tot verschillende resources te beheren en te beperken om beveiligingsrisico's te minimaliseren. Dit is met name belangrijk wanneer de toepassing is gebouwd op basis van een verzameling services uit een marketplace die door verschillende ontwikkelaars is ontwikkeld. Zie Het element SecurityAccessPolicy voor meer informatie
RunAsPolicy-element
Hiermee geeft u het lokale gebruikers- of lokale systeemaccount op dat een servicecodepakket wordt uitgevoerd als. Domeinaccounts worden ondersteund in Windows Server-implementaties waar Microsoft Entra-id beschikbaar is. Standaard worden toepassingen uitgevoerd onder het account waarvoor het Fabric.exe proces wordt uitgevoerd. Toepassingen kunnen ook worden uitgevoerd als andere accounts, die moeten worden gedeclareerd in de sectie Principals. Als u een RunAs-beleid toepast op een service en het servicemanifest eindpuntbronnen declareert met het HTTP-protocol, moet u ook een SecurityAccessPolicy opgeven om ervoor te zorgen dat poorten die aan deze eindpunten zijn toegewezen correct toegangsbeheer worden vermeld voor het RunAs-gebruikersaccount waaronder de service wordt uitgevoerd. Voor een HTTPS-eindpunt moet u ook een EndpointBindingPolicy definiëren om de naam van het certificaat aan te geven die naar de client moet worden geretourneerd. Zie RunAsPolicy-element voor meer informatie
DefaultServices Element
Declareert service-exemplaren die automatisch worden gemaakt wanneer een toepassing wordt geïnstantieerd op basis van dit toepassingstype. Zie Het element DefaultServices voor meer informatie
Service-element
Declareert een service die automatisch moet worden gemaakt wanneer de toepassing wordt geïnstantieerd. Zie Service-element voor meer informatie
StatefulService-element
Definieert een stateful service. Zie Het element StatefulService voor meer informatie
StatelessService-element
Definieert een staatloze service. Zie Het element StatelessService voor meer informatie
Principals Element
Beschrijft de beveiligingsprinciplen (gebruikers, groepen) die voor deze toepassing nodig zijn om services uit te voeren en resources te beveiligen. In de beleidssecties wordt verwezen naar principals. Zie Het element Principals voor meer informatie
Groepselement
Declareert een set groepen als beveiligingsprinciplen, waarnaar in beleidsregels kan worden verwezen. Groepen zijn handig als er meerdere gebruikers zijn voor verschillende serviceinvoerpunten en ze bepaalde algemene bevoegdheden moeten hebben die beschikbaar zijn op groepsniveau. Zie Het element Groepen voor meer informatie
Groepselement
Declareert een groep als beveiligingsprincipaal, waarnaar in beleid kan worden verwezen. Zie Groepselement voor meer informatie
Lidmaatschapselement
Zie Lidmaatschapselement voor meer informatie
SystemGroup-element
Zie SystemGroup-element voor meer informatie
Gebruikerselement
Declareert een set gebruikers als beveiligingsprinciplen, waarnaar kan worden verwezen in beleid. Zie Het element Gebruikers voor meer informatie
Gebruikerselement
Declareert een gebruiker als beveiligingsprincipaal, waarnaar kan worden verwezen in beleid. Zie Gebruikerselement voor meer informatie
MemberOf Element
Gebruikers kunnen worden toegevoegd aan elke bestaande lidmaatschapsgroep, zodat alle eigenschappen en beveiligingsinstellingen van die lidmaatschapsgroep kunnen worden overgenomen. De lidmaatschapsgroep kan worden gebruikt om externe resources te beveiligen die toegankelijk moeten zijn voor verschillende services of dezelfde service (op een andere computer). Zie MemberOf-element voor meer informatie
SystemGroup-element
De systeemgroep waaraan de gebruiker moet worden toegevoegd. De systeemgroep moet worden gedefinieerd in de sectie Groepen. Zie SystemGroup-element voor meer informatie
Groepselement
De groep waaraan de gebruiker moet worden toegevoegd. De groep moet worden gedefinieerd in de sectie Groepen. Zie Groepselement voor meer informatie
Het element Beleid
Beschrijft het beleid (logboekverzameling, standaarduitvoering als, status en beveiligingstoegang) dat moet worden toegepast op toepassingsniveau. Zie Het element Beleid voor meer informatie
DefaultRunAsPolicy Element
Geef een standaardgebruikersaccount op voor alle servicecodepakketten waarvoor geen specifieke RunAsPolicy is gedefinieerd in de sectie ServiceManifestImport. Zie Het element DefaultRunAsPolicy voor meer informatie
Manifestelementen van votingWeb-service
ServiceManifest-element
Beschrijft declaratief het servicetype en de versie. Het bevat de onafhankelijk upgradebare code, configuratie en gegevenspakketten die samen een servicepakket opstellen ter ondersteuning van een of meer servicetypen. Resources, diagnostische instellingen en servicemetagegevens, zoals servicetype, statuseigenschappen en metrische gegevens voor taakverdeling, worden ook opgegeven. Zie Het element ServiceManifest voor meer informatie
ServiceTypes Element
Hiermee definieert u welke servicetypen worden ondersteund door een CodePackage in dit manifest. Wanneer een service wordt geïnstantieerd op basis van een van deze servicetypen, worden alle codepakketten die in dit manifest zijn gedeclareerd, geactiveerd door hun toegangspunten uit te voeren. Servicetypen worden gedeclareerd op manifestniveau en niet op codepakketniveau. Zie Het element ServiceTypes voor meer informatie
StatelessServiceType-element
Beschrijft een staatloos servicetype. Zie Het element StatelessServiceType voor meer informatie
CodePackage-element
Beschrijft een codepakket dat ondersteuning biedt voor een gedefinieerd servicetype. Wanneer een service wordt geïnstantieerd op basis van een van deze servicetypen, worden alle codepakketten die in dit manifest zijn gedeclareerd, geactiveerd door hun toegangspunten uit te voeren. De resulterende processen worden verwacht de ondersteunde servicetypen tijdens runtime te registreren. Wanneer er meerdere codepakketten zijn, worden ze allemaal geactiveerd wanneer het systeem zoekt naar een van de gedeclareerde servicetypen. Zie Het element CodePackage voor meer informatie
SetupEntryPoint Element
Een bevoegd toegangspunt dat standaard wordt uitgevoerd met dezelfde referenties als Service Fabric (meestal het NETWORKSERVICE-account) vóór een ander toegangspunt. Het uitvoerbare bestand dat is opgegeven door EntryPoint, is doorgaans de langlopende servicehost. De aanwezigheid van een afzonderlijk installatieinvoerpunt voorkomt dat u de servicehost met hoge bevoegdheden gedurende langere tijd moet uitvoeren. Zie Het element SetupEntryPoint voor meer informatie
ExeHost-element
Zie ExeHost-element voor meer informatie
Programma-element
De naam van het uitvoerbare bestand. Bijvoorbeeld 'MySetup.bat' of 'MyServiceHost.exe'. Zie Program-element voor meer informatie
Argumentelement
Zie Het element Argumenten voor meer informatie
WorkingFolder Element
De werkmap voor het proces in het codepakket op het clusterknooppunt waar de toepassing wordt geïmplementeerd. U kunt drie waarden opgeven: Werk (de standaardinstelling), CodePackage of CodeBase. CodeBase geeft aan dat de werkmap is ingesteld op de map waarin de EXE is gedefinieerd in het codepakket. CodePackage stelt de werkmap in als de hoofdmap van het codepakket, ongeacht waar de EXE is gedefinieerd in de map van het codepakket. Werk stelt de werkmap in op een unieke map die op het knooppunt is gemaakt. Deze map is hetzelfde voor het hele toepassingsexemplaren. Standaard is de werkmap van alle processen in de toepassing ingesteld op de werkmap van de toepassing. Hier kunnen de processen de gegevens schrijven. Het schrijven van gegevens in het codepakket of de codebasis wordt niet aanbevolen omdat deze mappen kunnen worden gedeeld tussen verschillende toepassingsexemplaren en kunnen worden verwijderd. Zie WorkingFolder-element voor meer informatie
ConsoleRedirection-element
Waarschuwing
Gebruik geen consoleomleiding in een productietoepassing, maar gebruik deze alleen voor lokale ontwikkeling en foutopsporing. Hiermee wordt de console-uitvoer van het opstartscript omgeleid naar een uitvoerbestand in de toepassingsmap met de naam 'log' op het clusterknooppunt waar de toepassing wordt geïmplementeerd en uitgevoerd. Zie ConsoleRedirection-element voor meer informatie
EntryPoint-element
Het uitvoerbare bestand dat is opgegeven door EntryPoint, is doorgaans de langlopende servicehost. De aanwezigheid van een afzonderlijk installatieinvoerpunt voorkomt dat u de servicehost met hoge bevoegdheden gedurende langere tijd moet uitvoeren. Het uitvoerbare bestand dat is opgegeven door EntryPoint, wordt uitgevoerd nadat SetupEntryPoint is afgesloten. Het resulterende proces wordt bewaakt en opnieuw gestart (te beginnen met SetupEntryPoint) als het ooit wordt beëindigd of vastloopt. Zie EntryPoint-element voor meer informatie
ExeHost-element
Zie ExeHost-element voor meer informatie
ConfigPackage-element
Declareert een map, met de naam van het kenmerk Name, onder PackageRoot die een Settings.xml bestand bevat. Dit bestand bevat secties met door de gebruiker gedefinieerde sleutel-waardepaarinstellingen die het proces tijdens runtime kan lezen. Als tijdens een upgrade alleen de versie ConfigPackage is gewijzigd, wordt het actieve proces niet opnieuw opgestart. In plaats daarvan meldt een callback het proces dat de configuratie-instellingen zijn gewijzigd, zodat ze dynamisch opnieuw kunnen worden geladen. Zie Het element ConfigPackage voor meer informatie
Resources Element
Beschrijft de resources die door deze service worden gebruikt, die kunnen worden gedeclareerd zonder gecompileerde code te wijzigen en te wijzigen wanneer de service wordt geïmplementeerd. Toegang tot deze resources wordt beheerd via de secties Principals en Beleid van het toepassingsmanifest. Zie Het element Resources voor meer informatie
Element Eindpunten
Definieert eindpunten voor de service. Zie Het element Eindpunten voor meer informatie
Eindpuntelement
Het eindpunt, gedeclareerd in het servicemanifest, om te overschrijven. Zie Eindpuntelement voor meer informatie
Manifestelementen van votingData-service
ServiceManifest-element
Beschrijft declaratief het servicetype en de versie. Het bevat de onafhankelijk upgradebare code, configuratie en gegevenspakketten die samen een servicepakket opstellen ter ondersteuning van een of meer servicetypen. Resources, diagnostische instellingen en servicemetagegevens, zoals servicetype, statuseigenschappen en metrische gegevens voor taakverdeling, worden ook opgegeven. Zie Het element ServiceManifest voor meer informatie
ServiceTypes Element
Hiermee definieert u welke servicetypen worden ondersteund door een CodePackage in dit manifest. Wanneer een service wordt geïnstantieerd op basis van een van deze servicetypen, worden alle codepakketten die in dit manifest zijn gedeclareerd, geactiveerd door hun toegangspunten uit te voeren. Servicetypen worden gedeclareerd op manifestniveau en niet op codepakketniveau. Zie Het element ServiceTypes voor meer informatie
StatefulServiceType Element
Beschrijft een stateful servicetype. Zie het element StatefulServiceType voor meer informatie
CodePackage-element
Beschrijft een codepakket dat ondersteuning biedt voor een gedefinieerd servicetype. Wanneer een service wordt geïnstantieerd op basis van een van deze servicetypen, worden alle codepakketten die in dit manifest zijn gedeclareerd, geactiveerd door hun toegangspunten uit te voeren. De resulterende processen worden verwacht de ondersteunde servicetypen tijdens runtime te registreren. Wanneer er meerdere codepakketten zijn, worden ze allemaal geactiveerd wanneer het systeem zoekt naar een van de gedeclareerde servicetypen. Zie Het element CodePackage voor meer informatie
EntryPoint-element
Het uitvoerbare bestand dat is opgegeven door EntryPoint, is doorgaans de langlopende servicehost. De aanwezigheid van een afzonderlijk installatieinvoerpunt voorkomt dat u de servicehost met hoge bevoegdheden gedurende langere tijd moet uitvoeren. Het uitvoerbare bestand dat is opgegeven door EntryPoint, wordt uitgevoerd nadat SetupEntryPoint is afgesloten. Het resulterende proces wordt bewaakt en opnieuw gestart (te beginnen met SetupEntryPoint) als het ooit wordt beëindigd of vastloopt. Zie EntryPoint-element voor meer informatie
ExeHost-element
Zie ExeHost-element voor meer informatie
Programma-element
De naam van het uitvoerbare bestand. Bijvoorbeeld 'MySetup.bat' of 'MyServiceHost.exe'. Zie Program-element voor meer informatie
WorkingFolder Element
De werkmap voor het proces in het codepakket op het clusterknooppunt waar de toepassing wordt geïmplementeerd. U kunt drie waarden opgeven: Werk (de standaardinstelling), CodePackage of CodeBase. CodeBase geeft aan dat de werkmap is ingesteld op de map waarin de EXE is gedefinieerd in het codepakket. CodePackage stelt de werkmap in als de hoofdmap van het codepakket, ongeacht waar de EXE is gedefinieerd in de map van het codepakket. Werk stelt de werkmap in op een unieke map die op het knooppunt is gemaakt. Deze map is hetzelfde voor het hele toepassingsexemplaren. Standaard is de werkmap van alle processen in de toepassing ingesteld op de werkmap van de toepassing. Hier kunnen de processen de gegevens schrijven. Het schrijven van gegevens in het codepakket of de codebasis wordt niet aanbevolen omdat deze mappen kunnen worden gedeeld tussen verschillende toepassingsexemplaren en kunnen worden verwijderd. Zie WorkingFolder-element voor meer informatie
ConfigPackage-element
Declareert een map, met de naam van het kenmerk Name, onder PackageRoot die een Settings.xml bestand bevat. Dit bestand bevat secties met door de gebruiker gedefinieerde sleutel-waardepaarinstellingen die het proces tijdens runtime kan lezen. Als tijdens een upgrade alleen de versie ConfigPackage is gewijzigd, wordt het actieve proces niet opnieuw opgestart. In plaats daarvan meldt een callback het proces dat de configuratie-instellingen zijn gewijzigd, zodat ze dynamisch opnieuw kunnen worden geladen. Zie Het element ConfigPackage voor meer informatie
DataPackage-element
Declareert een map, met de naam van het kenmerk Name, onder PackageRoot die statische gegevensbestanden bevat die tijdens runtime door het proces moeten worden gebruikt. Service Fabric recyclet alle EXE's en DLLHOST's die zijn opgegeven in de host- en ondersteuningspakketten wanneer een van de gegevenspakketten die in het servicemanifest worden vermeld, worden bijgewerkt. Zie Het element DataPackage voor meer informatie
Resources Element
Beschrijft de resources die door deze service worden gebruikt, die kunnen worden gedeclareerd zonder gecompileerde code te wijzigen en te wijzigen wanneer de service wordt geïmplementeerd. Toegang tot deze resources wordt beheerd via de secties Principals en Beleid van het toepassingsmanifest. Zie Het element Resources voor meer informatie
Element Eindpunten
Definieert eindpunten voor de service. Zie Het element Eindpunten voor meer informatie
Eindpuntelement
Het eindpunt, gedeclareerd in het servicemanifest, om te overschrijven. Zie Eindpuntelement voor meer informatie