Dela via


Exempel på program med flera container och tjänstmanifest

Följande är exempel på program- och tjänstmanifest för ett Service Fabric-program med flera containrar. Syftet med dessa exempel är att visa vilka inställningar som är tillgängliga och hur du använder dem. Dessa program- och tjänstmanifest baseras på Windows Server 2016 Container Sample-manifest .

Följande funktioner visas:

Manifest Funktioner
Programmanifest åsidosätt miljövariabler, konfigurera containerport-to-host-mappning, konfigurera autentisering av containerregister, resursstyrning, ange isoleringsläge, ange operativsystemets byggspecifika containeravbildningar
FrontEndService-tjänstmanifest ange miljövariabler, konfigurera en slutpunkt, skicka kommandon till containern, importera ett certifikat till en container
BackEndService-tjänstmanifest ange miljövariabler, konfigurera en slutpunkt, konfigurera volymdrivrutin

Mer information om specifika XML-element finns i Programmanifestelement, FrontEndService-tjänstmanifestelement och BackEndService-tjänstmanifestelement .

Programmanifest

<?xml version="1.0" encoding="utf-8"?>
<ApplicationManifest ApplicationTypeName="Container.ApplicationType"
                     ApplicationTypeVersion="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">
  <Parameters>
    <Parameter Name="BackEndService_InstanceCount" DefaultValue="-1" />
    <Parameter Name="FrontEndService_InstanceCount" DefaultValue="-1" />
    <Parameter Name="CpuCores" DefaultValue="2" />
    <Parameter Name="BlockIOWeight" DefaultValue="200" />
    <Parameter Name="MaximumIOBandwidth" DefaultValue="1024" />
    <Parameter Name="MemoryReservationInMB" DefaultValue="1024" />
    <Parameter Name="MemorySwapInMB" DefaultValue="4084"/>
    <Parameter Name="MaximumIOps" DefaultValue="20"/>
    <Parameter Name="MemoryFront" DefaultValue="4084" />
    <Parameter Name="MemoryBack" DefaultValue="2048" />
    <Parameter Name="CertThumbprint" DefaultValue=""/>
  </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="BackEndServicePkg" ServiceManifestVersion="1.0.0" />    
    
    <!-- Policies to be applied to the imported service manifest. -->
    <Policies>
      <!-- Set resource governance at the service package level. -->
      <ServicePackageResourceGovernancePolicy CpuCores="[CpuCores]" MemoryInMB="[MemoryFront]"/>

      <!-- Set resource governance at the code package level. -->
      <ResourceGovernancePolicy CodePackageRef="Code" CpuPercent="10" MemoryInMB="[MemoryFront]" BlockIOWeight="[BlockIOWeight]" MaximumIOBandwidth="[MaximumIOBandwidth]" MaximumIOps="[MaximumIOps]" MemoryReservationInMB="[MemoryReservationInMB]" MemorySwapInMB="[MemorySwapInMB]"/>
      
      <!-- Policies for activating container hosts. -->
      <ContainerHostPolicies CodePackageRef="Code" Isolation="process">
        
        <!-- Credentials for the repository hosting the container image.-->
        <RepositoryCredentials AccountName="sfsamples" Password="ENCRYPTED-PASSWORD" PasswordEncrypted="true"/>
        
        <!-- This binds the port the container is listening on (8905 in this sample) to an endpoint resource named "BackEndServiceTypeEndpoint", which is defined in the service manifest.  -->
        <PortBinding ContainerPort="8905" EndpointRef="BackEndServiceTypeEndpoint"/>
        
        <!-- Configure the Azure Files volume plugin.  Bind the source folder on the host VM or a remote share to the destination folder within the running container. -->
        <Volume Source="azfiles" Destination="c:\VolumeTest\Data" Driver="sfazurefile">
          <!-- Driver options to be passed to driver. The Azure Files volume plugin supports the following driver options:
            shareName (the Azure Files file share that provides the volume for the container), storageAccountName (the Azure storage account
            that contains the Azure Files file share), storageAccountKey (Access key for the Azure storage account that contains the Azure Files file share).
            These three driver options are required. -->
          <DriverOption Name="shareName" Value="" />
          <DriverOption Name="storageAccountName" Value="MY-STORAGE-ACCOUNT-NAME" />
          <DriverOption Name="storageAccountKey" Value="MY-STORAGE-ACCOUNT-KEY" />
        </Volume>
        
        <!-- Windows Server containers may not be compatible across different versions of the OS.  You can specify multiple OS images per container and tag 
        them with the build versions of the OS. Get the build version of the OS by running "winver" at a Windows command prompt. -->
        <ImageOverrides>
          <!-- If the underlying OS is build version 16299 (Windows Server version 1709), Service Fabric picks the container image tagged with Os="16299". -->
          <Image Name="sfsamples.azurecr.io/sfsamples/servicefabricbackendservice_1709" Os="16299" />
          
          <!-- An untagged container image is assumed to work across all versions of the OS and overrides the image specified in the service manifest. -->
          <Image Name="sfsamples.azurecr.io/sfsamples/servicefabricbackendservice_default" />          
        </ImageOverrides>
      </ContainerHostPolicies>
    </Policies>
  </ServiceManifestImport>

  <!-- Policies to be applied to the imported service manifest. -->
  <ServiceManifestImport>
    <ServiceManifestRef ServiceManifestName="FrontEndServicePkg" ServiceManifestVersion="1.0.0" />
    
    <!-- This enables you to provide different values for environment variables when creating a FrontEndService
         Theses environment variables are declared in the FrontEndServiceType service manifest-->
    <EnvironmentOverrides CodePackageRef="Code">
      <EnvironmentVariable Name="BackendServiceName" Value="Container.Application/BackEndService"/>
      <EnvironmentVariable Name="HttpGatewayPort" Value="19080"/>
      <EnvironmentVariable Name="IsContainer" Value="true"/>
    </EnvironmentOverrides>
    
    <!-- This policy maps the  port of the container (80) to the endpoint declared in the service, 
         FrontEndServiceTypeEndpoint which is exposed as port 80 on the host-->    
    <Policies>

      <!-- Set resource governance at the service package level. -->
      <ServicePackageResourceGovernancePolicy CpuCores="[CpuCores]" MemoryInMB="[MemoryBack]"/>

      <!-- Policies for activating container hosts. -->
      <ContainerHostPolicies CodePackageRef="Code" Isolation="process">

        <!-- Credentials for the repository hosting the container image.-->
        <RepositoryCredentials AccountName="sfsamples" Password="ENCRYPTED-PASSWORD" PasswordEncrypted="true"/>

        <!-- Binds an endpoint resource (declared in the service manifest) to the exposed container port. -->
        <PortBinding ContainerPort="80" EndpointRef="FrontEndServiceTypeEndpoint"/>

        <!-- Import a certificate into the container.  The certificate must be installed in the LocalMachine store of all the cluster nodes.
          When the application starts, the runtime reads the certificate and generates a PFX file and password (on Windows) or a PEM file (on Linux).
          The PFX file and password are accessible in the container using the Certificates_ServicePackageName_CodePackageName_CertName_PFX and 
          Certificates_ServicePackageName_CodePackageName_CertName_Password environment variables. The PEM file is accessible in the container using the 
          Certificates_ServicePackageName_CodePackageName_CertName_PEM and Certificates_ServicePackageName_CodePackageName_CertName_PrivateKey environment variables.-->
        <CertificateRef Name="MyCert1" X509StoreName="My" X509FindValue="[CertThumbprint]" />

        <!-- If the certificate is already in PFX or PEM form, you can create a data package inside your application and reference that certificate here. -->
        <CertificateRef Name="MyCert2" DataPackageRef="Data" DataPackageVersion="1.0.0" RelativePath="MyCert2.PFX" Password="ENCRYPTED-PASSWORD" IsPasswordEncrypted="true"/>
      </ContainerHostPolicies>
    </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="FrontEndService" >
      <StatelessService ServiceTypeName="FrontEndServiceType" InstanceCount="[FrontEndService_InstanceCount]">
        <SingletonPartition />
      </StatelessService>
    </Service>
        <Service Name="BackEndService" ServicePackageActivationMode="ExclusiveProcess">
      <StatelessService ServiceTypeName="BackEndServiceType" InstanceCount="[BackEndService_InstanceCount]">
        <SingletonPartition />
      </StatelessService>
    </Service>
  </DefaultServices>
</ApplicationManifest>

FrontEndService-tjänstmanifest

<?xml version="1.0" encoding="utf-8"?>
<ServiceManifest Name="FrontEndServicePkg"
                 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.
         The UseImplicitHost attribute indicates this is a guest service. -->
    <StatelessServiceType ServiceTypeName="FrontEndServiceType" UseImplicitHost="true" />
  </ServiceTypes>

  <!-- Code package is your service executable. -->
  <CodePackage Name="Code" Version="1.0.0">
    <EntryPoint>
      <ContainerHost>
        <!--The repo and image on https://hub.docker.com or Azure Container Registry. -->
        <ImageName>sfsamples.azurecr.io/sfsamples/servicefabricfrontendservice:v1</ImageName>
      </ContainerHost>
    </EntryPoint>
    <!-- Pass environment variables to your container or exe.  These variables are overridden in the application manifest. -->
    <EnvironmentVariables>
      <EnvironmentVariable Name="BackendServiceName" Value=""/>
      <EnvironmentVariable Name="HttpGatewayPort" Value=""/>
      <EnvironmentVariable Name="IsContainer" Value=""/>
    </EnvironmentVariables>
  </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" />
  
  <!-- Data package is the contents of the Data directory under PackageRoot that contains an 
       independently-updateable and versioned static data that's consumed by the process at runtime. -->
  <DataPackage Name="Data" Version="1.0.0"/>

  <Resources>
    <Endpoints>
      <!-- This endpoint is used by the communication listener to obtain the port on which to 
           listen. For a guest executable is used to register with the NamingService at its REST endpoint
           with http scheme and port 80 -->
      <Endpoint Name="FrontEndServiceTypeEndpoint" UriScheme="http" Port="80"/>
    </Endpoints>
  </Resources>
</ServiceManifest>

BackEndService-tjänstmanifest

<?xml version="1.0" encoding="utf-8"?>
<ServiceManifest Name="BackEndServicePkg"
                 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.
         The UseImplicitHost attribute indicates this is a guest service. -->
    <StatelessServiceType ServiceTypeName="BackEndServiceType" UseImplicitHost="true" />
  </ServiceTypes>

  <!-- Code package is your service executable. -->
  <CodePackage Name="Code" Version="1.0.0">
    <EntryPoint>
      <ContainerHost>
        <!--The repo and image on https://hub.docker.com or Azure Container Registry. -->
        <ImageName>sfsamples.azurecr.io/sfsamples/servicefabricbackendservice:v1</ImageName>
        
        <!-- Pass comma delimited commands to your container. -->
        <Commands> dotnet, myproc.dll, 5 </Commands>
      </ContainerHost>
    </EntryPoint>
    <!-- Pass environment variables to your container. These variables are overridden in the application manifest. -->
    <EnvironmentVariables>
      <EnvironmentVariable Name="IsContainer" Value="true"/>
    </EnvironmentVariables>
  </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>
      <!-- This endpoint is used by the communication listener to obtain the host port on which to 
           listen. For a guest executable is used to register with the NamingService at its REST endpoint
           with http scheme. In this case since no port is specified, one is created and assigned dynamically
           to the service. This dynamically assigned host port is mapped to the container port (8905 in this sample),
            which was specified in the application manifest.-->
      <Endpoint Name="BackEndServiceTypeEndpoint" UriScheme="http" />
    </Endpoints>
  </Resources>
</ServiceManifest>

Programmanifestelement

ApplicationManifest-element

Deklarativt beskriver programtypen och versionen. Ett eller flera tjänstmanifest för de konstituerande tjänsterna refereras till att bestå av en programtyp. Konfigurationsinställningarna för de ingående tjänsterna kan åsidosättas med hjälp av parametriserade programinställningar. Standardtjänster, tjänstmallar, huvudnamn, principer, diagnostikkonfiguration och certifikat kan också deklareras på programnivå. Mer information finns i ApplicationManifest-element

Parameterelement

Deklarerar de parametrar som används i det här programmanifestet. Värdet för dessa parametrar kan anges när programmet instansieras och kan användas för att åsidosätta inställningar för program- eller tjänstkonfiguration. Mer information finns i Parameterelement

Parameterelement

En programparameter som ska användas i det här manifestet. Parametervärdet kan ändras under programinstansiering, eller om inget värde anges används standardvärdet. Mer information finns i Parameterelement

ServiceManifestImportera element

Importerar ett tjänstmanifest som skapats av tjänstutvecklaren. Ett tjänstmanifest måste importeras för varje komponenttjänst i programmet. Konfigurations åsidosättningar och principer kan deklareras för tjänstmanifestet. Mer information finns i ServiceManifestImport-element

ServiceManifestRef-element

Importerar tjänstmanifestet med referens. För närvarande måste tjänstmanifestfilen (ServiceManifest.xml) finnas i byggpaketet. Mer information finns i ServiceManifestRef-element

Principelement

Beskriver principer (slutpunktsbindning, paketdelning, körning och säkerhetsåtkomst) som ska tillämpas på det importerade tjänstmanifestet. Mer information finns i Element för principer

ServicePackageResourceGovernancePolicy-element

Definierar den resursstyrningsprincip som tillämpas på nivån för hela tjänstpaketet. Mer information finns i ServicePackageResourceGovernancePolicy-element

ResourceGovernancePolicy-element

Anger resursgränser för ett kodpaket. Mer information finns i ResourceGovernancePolicy-element

ContainerHostPolicies-element

Anger principer för aktivering av containervärdar. Mer information finns i Elementet ContainerHostPolicies

RepositoryCredentials-element

Autentiseringsuppgifter för containeravbildningslagringsplats att hämta avbildningar från. Mer information finns i RepositoryCredentials-element

PortBinding-element

Anger vilken slutpunktsresurs som ska bindas till den exponerade containerporten. Mer information finns i PortBinding-element

Volymelement

Anger den volym som ska bindas till containern. Mer information finns i Volymelement

DriverOption-element

Drivrutinsalternativ som ska skickas till drivrutinen. Mer information finns i DriverOption-element

ImageOverrides-element

Windows Server-containrar kanske inte är kompatibla i olika versioner av operativsystemet. Du kan ange flera OS-avbildningar per container och tagga dem med versionsversionerna av operativsystemet. Hämta versionsversionen av operativsystemet genom att köra "winver" i en Windows-kommandotolk. Om det underliggande operativsystemet är version 16299 (Windows Server version 1709) väljer Service Fabric containeravbildningen märkt med Os="16299". En obevakad containeravbildning antas fungera i alla versioner av operativsystemet och åsidosätter avbildningen som anges i tjänstmanifestet. Mer information finns i ImageOverrides-element

Bildelement

Containeravbildning som motsvarar versionsnumret för operativsystemet som ska startas. Om os-attributet inte har angetts antas containeravbildningen fungera i alla versioner av operativsystemet och åsidosätter avbildningen som anges i tjänstmanifestet. Mer information finns i Bildelement

EnvironmentOverrides-element

Mer information finns i EnvironmentOverrides-element

EnvironmentVariable-element

Miljövariabel. Mer information finns i EnvironmentVariable-element

CertificateRef-element

Anger information om ett X509-certifikat som ska exponeras för containermiljön. Certifikatet måste installeras i LocalMachine-arkivet för alla klusternoder. När programmet startar läser körningen certifikatet och genererar en PFX-fil och ett lösenord (i Windows) eller en PEM-fil (i Linux). PFX-filen och lösenordet är tillgängliga i containern med hjälp av miljövariablerna Certificates_ServicePackageName_CodePackageName_CertName_PFX och Certificates_ServicePackageName_CodePackageName_CertName_Password. PEM-filen är tillgänglig i containern med hjälp av miljövariablerna Certificates_ServicePackageName_CodePackageName_CertName_PEM och Certificates_ServicePackageName_CodePackageName_CertName_PrivateKey. Mer information finns i CertificateRef-element

DefaultServices-element

Deklarerar tjänstinstanser som skapas automatiskt när ett program instansieras mot den här programtypen. Mer information finns i DefaultServices-element

Tjänstelement

Deklarerar en tjänst som ska skapas automatiskt när programmet instansieras. Mer information finns i Tjänstelement

StatelessService-element

Definierar en tillståndslös tjänst. Mer information finns i StatelessService-element

FrontEndService-tjänstmanifestelement

ServiceManifest-element

Deklarativt beskriver tjänsttypen och versionen. Den visar de oberoende uppgraderingsbara kod-, konfigurations- och datapaketen som tillsammans utgör ett tjänstpaket för att stödja en eller flera tjänsttyper. Resurser, diagnostikinställningar och tjänstmetadata, till exempel tjänsttyp, hälsoegenskaper och belastningsutjämningsmått, anges också. Mer information finns i ServiceManifest-element

ServiceTypes-element

Definierar vilka tjänsttyper som stöds av ett CodePackage i det här manifestet. När en tjänst instansieras mot någon av dessa tjänsttyper aktiveras alla kodpaket som deklareras i det här manifestet genom att deras startpunkter körs. Tjänsttyper deklareras på manifestnivå och inte på kodpaketnivå. Mer information finns i ServiceTypes-element

StatelessServiceType-element

Beskriver en tillståndslös tjänsttyp. Mer information finns i StatelessServiceType-element

CodePackage-element

Beskriver ett kodpaket som stöder en definierad tjänsttyp. När en tjänst instansieras mot någon av dessa tjänsttyper aktiveras alla kodpaket som deklareras i det här manifestet genom att deras startpunkter körs. De resulterande processerna förväntas registrera de tjänsttyper som stöds vid körning. När det finns flera kodpaket aktiveras alla när systemet letar efter någon av de deklarerade tjänsttyperna. Mer information finns i CodePackage-element

EntryPoint-element

Den körbara fil som anges av EntryPoint är vanligtvis den långvariga tjänstvärden. Förekomsten av en separat startpunkt för installation undviker att behöva köra tjänstvärden med hög behörighet under längre tidsperioder. Den körbara fil som anges av EntryPoint körs när SetupEntryPoint avslutas. Den resulterande processen övervakas och startas om (börjar igen med SetupEntryPoint) om den någonsin avslutas eller kraschar. Mer information finns i EntryPoint-element

ContainerHost-element

Mer information finns i ContainerHost-element

ImageName-element

Lagringsplatsen och avbildningen på https://hub.docker.com eller Azure Container Registry. Mer information finns i ImageName-element

EnvironmentVariables-element

Skicka miljövariabler till din container eller exe. Mer information finns i EnvironmentVariables-element

EnvironmentVariable-element

Miljövariabel. Mer information finns i EnvironmentVariable-element

ConfigPackage-element

Deklarerar en mapp med namnet med attributet Namn som innehåller en Settings.xml fil. Den här filen innehåller avsnitt av användardefinierade nyckel/värde-parinställningar som processen kan läsa tillbaka vid körning. Om endast ConfigPackage-versionen har ändrats under en uppgradering startas inte körningsprocessen om. I stället meddelar ett återanrop processen att konfigurationsinställningarna har ändrats så att de kan läsas in dynamiskt igen. Mer information finns i ConfigPackage-element

DataPackage-element

Deklarerar en mapp, namngiven av attributet Namn, som innehåller statiska datafiler. Service Fabric återanvänder alla EXE:er och DLLHOST:er som anges i värd- och supportpaketen när något av de datapaket som anges i tjänstmanifestet uppgraderas. Mer information finns i DataPackage-element

Resurselement

Beskriver de resurser som används av den här tjänsten, som kan deklareras utan att ändra kompilerad kod och ändras när tjänsten distribueras. Åtkomsten till dessa resurser styrs via avsnitten Huvudnamn och principer i programmanifestet. Mer information finns i Resurselement

Slutpunktselement

Definierar slutpunkter för tjänsten. Mer information finns i Endpoints-element

Slutpunktselement

Mer information finns i Slutpunktselement

BackEndService-tjänstmanifestelement

ServiceManifest-element

Deklarativt beskriver tjänsttypen och versionen. Den visar de oberoende uppgraderingsbara kod-, konfigurations- och datapaketen som tillsammans utgör ett tjänstpaket för att stödja en eller flera tjänsttyper. Resurser, diagnostikinställningar och tjänstmetadata, till exempel tjänsttyp, hälsoegenskaper och belastningsutjämningsmått, anges också. Mer information finns i ServiceManifest-element

ServiceTypes-element

Definierar vilka tjänsttyper som stöds av ett CodePackage i det här manifestet. När en tjänst instansieras mot någon av dessa tjänsttyper aktiveras alla kodpaket som deklareras i det här manifestet genom att deras startpunkter körs. Tjänsttyper deklareras på manifestnivå och inte på kodpaketnivå. Mer information finns i ServiceTypes-element

StatelessServiceType-element

Beskriver en tillståndslös tjänsttyp. Mer information finns i StatelessServiceType-element

CodePackage-element

Beskriver ett kodpaket som stöder en definierad tjänsttyp. När en tjänst instansieras mot någon av dessa tjänsttyper aktiveras alla kodpaket som deklareras i det här manifestet genom att deras startpunkter körs. De resulterande processerna förväntas registrera de tjänsttyper som stöds vid körning. När det finns flera kodpaket aktiveras alla när systemet letar efter någon av de deklarerade tjänsttyperna. Mer information finns i CodePackage-element

EntryPoint-element

Den körbara fil som anges av EntryPoint är vanligtvis den långvariga tjänstvärden. Förekomsten av en separat startpunkt för installation undviker att behöva köra tjänstvärden med hög behörighet under längre tidsperioder. Den körbara fil som anges av EntryPoint körs när SetupEntryPoint avslutas. Den resulterande processen övervakas och startas om (börjar igen med SetupEntryPoint) om den någonsin avslutas eller kraschar. Mer information finns i EntryPoint-element

ContainerHost-element

Mer information finns i ContainerHost-element

ImageName-element

Lagringsplatsen och avbildningen på https://hub.docker.com eller Azure Container Registry. Mer information finns i ImageName-element

Kommandoelement

Skicka en kommaavgränsad lista med kommandon till containern. Mer information finns i Kommandoelement

EnvironmentVariables-element

Skicka miljövariabler till din container eller exe. Mer information finns i EnvironmentVariables-element

EnvironmentVariable-element

Miljövariabel. Mer information finns i EnvironmentVariable-element

ConfigPackage-element

Deklarerar en mapp med namnet med attributet Namn som innehåller en Settings.xml fil. Den här filen innehåller avsnitt av användardefinierade nyckel/värde-parinställningar som processen kan läsa tillbaka vid körning. Om endast ConfigPackage-versionen har ändrats under en uppgradering startas inte körningsprocessen om. I stället meddelar ett återanrop processen att konfigurationsinställningarna har ändrats så att de kan läsas in dynamiskt igen. Mer information finns i ConfigPackage-element

Resurselement

Beskriver de resurser som används av den här tjänsten, som kan deklareras utan att ändra kompilerad kod och ändras när tjänsten distribueras. Åtkomsten till dessa resurser styrs via avsnitten Huvudnamn och principer i programmanifestet. Mer information finns i Resurselement

Slutpunktselement

Definierar slutpunkter för tjänsten. Mer information finns i Endpoints-element

Slutpunktselement

Mer information finns i Slutpunktselement