Ejemplos de manifiesto de servicio y de aplicación con varios contenedores
A continuación se muestran ejemplos de manifiestos de servicio y de aplicación para una aplicación de Service Fabric de varios contenedores. El propósito de estos ejemplos es mostrar qué opciones están disponibles y cómo usarlas. Estos manifiestos de aplicación y de servicio se basan en los manifiestos del ejemplo de contenedor de Windows Server 2016.
Se muestran las características siguientes:
Consulte Elementos del manifiesto de aplicación, Elementos del manifiesto del servicio FrontEndService, y Elementos del manifiesto del servicio BackEndService para más información sobre elementos específicos XML.
Manifiesto de aplicación
<?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>
Manifiesto del servicio FrontEndService
<?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>
Manifiesto del servicio BackEndService
<?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>
Elementos del manifiesto de aplicación
Elemento ApplicationManifest
Describe mediante declaración el tipo de aplicación y la versión. Para crear un tipo de aplicación, se hace referencia a uno o varios manifiestos de servicio de los servicios constituyentes. Los valores de configuración de los servicios constituyentes pueden invalidarse mediante la configuración de aplicación parametrizada. También se pueden declarar servicios predeterminados, plantillas de servicio, entidades de seguridad, directivas, configuraciones de diagnóstico y certificados en el nivel de aplicación. Para más información, consulte Elemento ApplicationManifest
Elemento Parameters
Declara los parámetros que se usan en este manifiesto de aplicación. El valor de estos parámetros puede proporcionarse cuando se crea una instancia de la aplicación y se puede usar para invalidar los valores de configuración del servicio o de la aplicación. Para más información, consulte Elemento Parameters
Elemento Parameter
Un parámetro de aplicación que se usará en este manifiesto. El valor del parámetro puede cambiarse durante la creación de instancias de la aplicación, o, si no se proporciona ningún valor, se usa el valor predeterminado. Para más información, consulte Elemento Parameter
Elemento ServiceManifestImport
Importa un manifiesto de servicio creado por el desarrollador del servicio. Para cada servicio constituyente de la aplicación se debe importar un manifiesto de servicio. Se invalida la configuración y se pueden declarar directivas para el manifiesto de servicio. Para más información, consulte Elemento ServiceManifestImport
Elemento ServiceManifestRef
Importa el manifiesto de servicio por referencia. Actualmente el archivo de manifiesto de servicio (ServiceManifest.xml) debe estar presente en el paquete de compilación. Para más información, consulte Elemento ServiceManifestRef
Elemento Policies
Describe las directivas (enlace de punto de conexión, uso compartido de paquetes, ejecutar como y acceso de seguridad) que se van a aplicar en el manifiesto de servicio importado. Para más información, consulte Elemento Policies
Elemento ServicePackageResourceGovernancePolicy
Define la directiva de gobernanza de recursos que se aplica en el nivel del paquete de servicio completo. Para más información, consulte Elemento ServicePackageResourceGovernancePolicy
Elemento ResourceGovernancePolicy
Especifica los límites de recursos de un paquete de código. Para más información, consulte Elemento ResourceGovernancePolicy
Elemento ContainerHostPolicies
Especifica las directivas para activar los hosts de contenedor. Para más información, consulte Elemento ContainerHostPolicies
Elemento RepositoryCredentials
Las credenciales del repositorio de imágenes de contenedor del que extraer imágenes. Para más información, consulte Elemento RepositoryCredentials
Elemento PortBinding
Especifica el recurso de punto de conexión al que enlazar el puerto expuesto del contenedor. Para más información, consulte Elemento PortBinding
Elemento Volume
Especifica el volumen que se enlaza al contenedor. Para más información, consulte Elemento Volume
Elemento DriverOption
Opciones de controlador que se pasan al controlador. Para más información, consulte Elemento DriverOption
Elemento ImageOverrides
Es posible que los contenedores Windows Server no sean compatibles con las distintas versiones del sistema operativo. Puede especificar varias imágenes de sistema operativo por contenedor y etiquetarlas con las versiones de compilación del sistema operativo. Obtenga la versión de compilación del sistema operativo ejecutando "winver" en un símbolo del sistema de Windows. Si el sistema operativo subyacente tiene la versión de compilación 16299 (versión Windows Server 1709), Service Fabric seleccionará la imagen de contenedor etiquetada con Os="16299". Se supone que una imagen de contenedor no etiquetada funcionará con todas las versiones del sistema operativo y que reemplazará la imagen especificada en el manifiesto de servicio. Para más información, consulte Elemento ImageOverrides
Elemento de imagen
Imagen de contenedor correspondiente al número de versión de compilación del sistema operativo que se iniciará. Si el atributo del sistema operativo no está especificado, se supone que la imagen de contenedor funcionará en todas las versiones del sistema operativo y reemplazará la imagen especificada en el manifiesto de servicio. Para más información, consulte Elemento Image
Elemento EnvironmentOverrides
Para más información, consulte Elemento EnvironmentOverrides
Elemento EnvironmentVariable
Nombre de la variable de entorno. Para más información, consulte Elemento EnvironmentVariable
Elemento CertificateRef
Especifica información sobre un certificado X509 que se va a exponer en el entorno del contenedor. El certificado debe instalarse en el almacén LocalMachine de todos los nodos de clúster. Cuando la aplicación se inicia, el entorno de tiempo de ejecución lee el certificado y genera un archivo PFX y una contraseña (en Windows) o un archivo PEM (en Linux). En el contenedor se puede acceder a la contraseña y al archivo PFX con las variables de entorno Certificates_ServicePackageName_CodePackageName_CertName_PFX y Certificates_ServicePackageName_CodePackageName_CertName_Password. En el contenedor se puede acceder al archivo PEM con las variables de entorno Certificates_ServicePackageName_CodePackageName_CertName_PEM y Certificates_ServicePackageName_CodePackageName_CertName_PrivateKey. Para más información, consulte Elemento CertificateRef
Elemento DefaultServices
Declara instancias de servicio que se crean automáticamente cada vez que se crea una instancia de una aplicación en este tipo de aplicación. Para más información, consulte Elemento DefaultServices
Elemento Service
Declara que un servicio se cree automáticamente cuando se crea una instancia de la aplicación. Para más información, consulte Elemento Service
Elemento StatelessService
Define un servicio sin estado. Para más información, consulte Elemento StatelessService
Elementos del manifiesto del servicio FrontEndService
Elemento ServiceManifest
Describe mediante declaración el tipo de servicio y la versión. Enumera los paquetes de código, configuración y datos que se pueden actualizar de manera independiente que, juntos, constituyen un paquete de servicio para admitir uno o más tipos de servicio. También se especifican los recursos, la configuración de diagnóstico y los metadatos de servicio, como el tipo de servicio, las propiedades de mantenimiento y las métricas de equilibrio de carga. Para más información, consulte Elemento ServiceManifest
Elemento ServiceTypes
Define los tipos de servicios que son compatibles con CodePackage en este manifiesto. Cuando se crea una instancia de un servicio en uno de estos tipos de servicio, todos los paquetes de código declarados en este manifiesto se activan mediante la ejecución de sus puntos de entrada. Los tipos de servicio se declaran en el nivel de manifiesto y no en el nivel de paquete de código. Para más información, consulte Elemento ServiceTypes
Elemento StatelessServiceType
Describe un tipo de servicio sin estado. Para más información, consulte Elemento StatelessServiceType
Elemento CodePackage
Describe un paquete de código que admite un tipo de servicio definido. Cuando se crea una instancia de un servicio en uno de estos tipos de servicio, todos los paquetes de código declarados en este manifiesto se activan mediante la ejecución de sus puntos de entrada. Se espera que los procesos resultantes registren los tipos de servicio admitidos en tiempo de ejecución. Cuando hay varios paquetes de código, se activan todos cada vez que el sistema busca cualquiera de los tipos de servicios declarados. Para más información, consulte Elemento CodePackage
Elemento EntryPoint
El archivo ejecutable especificado por EntryPoint suele ser el host de servicios de ejecución prolongada. La presencia de un punto de entrada de configuración independiente evita tener que ejecutar el host de servicio con privilegios elevados durante largos períodos de tiempo. El archivo ejecutable especificado por EntryPoint se ejecuta después de que SetupEntryPoint se cierra correctamente. El proceso resultante se supervisa y reinicia (comenzando de nuevo con SetupEntryPoint) si alguna vez finaliza o se bloquea. Para más información, consulte Elemento EntryPoint
Elemento ContainerHost
Para más información, consulte Elemento ContainerHost
Elemento ImageName
El repositorio y la imagen de https://hub.docker.com o Azure Container Registry. Para más información, consulte Elemento ImageName
Elemento EnvironmentVariables
Pase variables de entorno al contenedor o exe. Para más información, consulte Elemento EnvironmentVariables
Elemento EnvironmentVariable
Nombre de la variable de entorno. Para más información, consulte Elemento EnvironmentVariable
Elemento ConfigPackage
Declara una carpeta, designada por el atributo Name, que contiene un archivo Settings.xml. Este archivo contiene secciones de configuración del par clave-valor definida por el usuario que el proceso puede volver a leer en tiempo de ejecución. Durante una actualización, si solo ha cambiado la versión de ConfigPackage, no se reiniciará el proceso en ejecución. En su lugar, una devolución de llamada notifica el proceso que los ajustes de configuración han cambiado, por lo que pueden volver a cargarse de forma dinámica. Para más información, consulte Elemento ConfigPackage
Elemento DataPackage
Declara una carpeta, designada por el atributo Name, que contiene archivos de datos estáticos. Service Fabric reciclará todos los archivos EXE y DLLHOST especificados en los paquetes de host y soporte técnico cuando cualquiera de los paquetes de datos enumerados en el manifiesto de servicio se actualice. Para más información, consulte Elemento DataPackage
Elemento Resources
Describe los recursos utilizados por este servicio, que se pueden declarar sin modificar el código compilado y cambiar cuando se implemente el servicio. El acceso a estos recursos se controla mediante las secciones Entidades de seguridad y Directivas del manifiesto de aplicación. Para más información, consulte Elemento Resources
Elemento Endpoints
Define los puntos de conexión del servicio. Para más información, consulte Elemento Endpoints
Elemento Endpoint
Para más información, consulte Elemento Endpoint
Elementos del manifiesto del servicio BackEndService
Elemento ServiceManifest
Describe mediante declaración el tipo de servicio y la versión. Enumera los paquetes de código, configuración y datos que se pueden actualizar de manera independiente que, juntos, constituyen un paquete de servicio para admitir uno o más tipos de servicio. También se especifican los recursos, la configuración de diagnóstico y los metadatos de servicio, como el tipo de servicio, las propiedades de mantenimiento y las métricas de equilibrio de carga. Para más información, consulte Elemento ServiceManifest
Elemento ServiceTypes
Define los tipos de servicios que son compatibles con CodePackage en este manifiesto. Cuando se crea una instancia de un servicio en uno de estos tipos de servicio, todos los paquetes de código declarados en este manifiesto se activan mediante la ejecución de sus puntos de entrada. Los tipos de servicio se declaran en el nivel de manifiesto y no en el nivel de paquete de código. Para más información, consulte Elemento ServiceTypes
Elemento StatelessServiceType
Describe un tipo de servicio sin estado. Para más información, consulte Elemento StatelessServiceType
Elemento CodePackage
Describe un paquete de código que admite un tipo de servicio definido. Cuando se crea una instancia de un servicio en uno de estos tipos de servicio, todos los paquetes de código declarados en este manifiesto se activan mediante la ejecución de sus puntos de entrada. Se espera que los procesos resultantes registren los tipos de servicio admitidos en tiempo de ejecución. Cuando hay varios paquetes de código, se activan todos cada vez que el sistema busca cualquiera de los tipos de servicios declarados. Para más información, consulte Elemento CodePackage
Elemento EntryPoint
El archivo ejecutable especificado por EntryPoint suele ser el host de servicios de ejecución prolongada. La presencia de un punto de entrada de configuración independiente evita tener que ejecutar el host de servicio con privilegios elevados durante largos períodos de tiempo. El archivo ejecutable especificado por EntryPoint se ejecuta después de que SetupEntryPoint se cierra correctamente. El proceso resultante se supervisa y reinicia (comenzando de nuevo con SetupEntryPoint) si alguna vez finaliza o se bloquea. Para más información, consulte Elemento EntryPoint
Elemento ContainerHost
Para más información, consulte Elemento ContainerHost
Elemento ImageName
El repositorio y la imagen de https://hub.docker.com o Azure Container Registry. Para más información, consulte Elemento ImageName
Elemento Commands
Pase una lista de comandos delimitados por comas al contenedor. Para más información, consulte Elemento Commands
Elemento EnvironmentVariables
Pase variables de entorno al contenedor o exe. Para más información, consulte Elemento EnvironmentVariables
Elemento EnvironmentVariable
Nombre de la variable de entorno. Para más información, consulte Elemento EnvironmentVariable
Elemento ConfigPackage
Declara una carpeta, designada por el atributo Name, que contiene un archivo Settings.xml. Este archivo contiene secciones de configuración del par clave-valor definida por el usuario que el proceso puede volver a leer en tiempo de ejecución. Durante una actualización, si solo ha cambiado la versión de ConfigPackage, no se reiniciará el proceso en ejecución. En su lugar, una devolución de llamada notifica el proceso que los ajustes de configuración han cambiado, por lo que pueden volver a cargarse de forma dinámica. Para más información, consulte Elemento ConfigPackage
Elemento Resources
Describe los recursos utilizados por este servicio, que se pueden declarar sin modificar el código compilado y cambiar cuando se implemente el servicio. El acceso a estos recursos se controla mediante las secciones Entidades de seguridad y Directivas del manifiesto de aplicación. Para más información, consulte Elemento Resources
Elemento Endpoints
Define los puntos de conexión del servicio. Para más información, consulte Elemento Endpoints
Elemento Endpoint
Para más información, consulte Elemento Endpoint