ServiceConfiguration.cscfg

Get an overview of parameters of the service configuration

You use the service configuration file (.cscfg) together with a service package when deploying a Web role in an Azure cloud service. While a lot of parameters are set automatically when the package is built, you are supposed to set up a few of them before deploying the web role.

Example:

<?xml version="1.0" encoding="utf-8"?>
<ServiceConfiguration serviceName="CmsCloudService" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration" osFamily="4" osVersion="*" schemaVersion="2015-04.2.6">
  <Role name="CmsWebRole">
    <Instances count="1" />
    <ConfigurationSettings>
      <Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="DefaultEndpointsProtocol=https;AccountName=mystorage;AccountKey=zPIELz1YoHySxoKju6ZUQhfc7UlRAACrs8K8QScpL9CvS8atWBBLeBd0DcExiB5xyz5l0SevisNVgjSN/iRKOw==" />
      <Setting name="WebRole.DisplayName" value="CMS Cloud Service" />
      <Setting name="WebRole.Blob.ConnectionString" value="DefaultEndpointsProtocol=https;AccountName=mystorage;AccountKey=zPIELz1YoHySxoKju6ZUQhfc7UlRAACrs8K8QScpL9CvS8atWBBLeBd0DcExiB5xyz5l0SevisNVgjSN/iRKOw==" />
      <Setting name="WebRole.Blob.ContainerName" value="deployment" />
      <Setting name="WebRole.Blob.ConnectionStringEncrypted" value="false" />
      <Setting name="WebRole.Blob.UpdateCheckSleepInMilliSeconds" value="5000" />
      <Setting name="WebRole.Blob.MaximumDownloadConcurrency" value="50" />
      <Setting name="Webrole.Blob.StatusFilesTouchRateInMinutes" value="10" />
      <Setting name="WebRole.Iis.AppPoolIdleTimeoutMinutes" value="60" />
      <Setting name="WebRole.Iis.ManageIisConfiguration" value="true" />
      <Setting name="WebRole.Iis.DeleteDefaultSites" value="true" />
      <Setting name="WebRole.SmtpServer.Install" value="false" />
    </ConfigurationSettings>
    <Certificates>
      <Certificate name="CertificateSlot0" thumbprint="8057987CA86216898EE2E06A93DAC725D8F00FE3" thumbprintAlgorithm="sha1" />
      <Certificate name="CertificateSlot1" thumbprint="8057987CA86216898EE2E06A93DAC725D8F00FE3" thumbprintAlgorithm="sha1" />
      <Certificate name="CertificateSlot2" thumbprint="8057987CA86216898EE2E06A93DAC725D8F00FE3" thumbprintAlgorithm="sha1" />
      <Certificate name="CertificateSlot3" thumbprint="8057987CA86216898EE2E06A93DAC725D8F00FE3" thumbprintAlgorithm="sha1" />
      <Certificate name="CertificateSlot4" thumbprint="8057987CA86216898EE2E06A93DAC725D8F00FE3" thumbprintAlgorithm="sha1" />
      <Certificate name="CertificateSlot5" thumbprint="8057987CA86216898EE2E06A93DAC725D8F00FE3" thumbprintAlgorithm="sha1" />
      <Certificate name="CertificateSlot6" thumbprint="8057987CA86216898EE2E06A93DAC725D8F00FE3" thumbprintAlgorithm="sha1" />
      <Certificate name="CertificateSlot7" thumbprint="8057987CA86216898EE2E06A93DAC725D8F00FE3" thumbprintAlgorithm="sha1" />
      <Certificate name="CertificateSlot8" thumbprint="8057987CA86216898EE2E06A93DAC725D8F00FE3" thumbprintAlgorithm="sha1" />
      <Certificate name="CertificateSlot9" thumbprint="8057987CA86216898EE2E06A93DAC725D8F00FE3" thumbprintAlgorithm="sha1" />
    </Certificates>
  </Role>
</ServiceConfiguration>

The following is the overview of all the available parameters:

ServiceConfiguration

ParameterDescriptionValue
serviceNameThe programmatic name of the Azure cloud service in the service package[filled in automatically]
xmlnsXML namespacehttp://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration
osFamilyOS family4
osVersionOS version*
schemaVersionThe Azure SDK version. Filled in automatically2015-04.2.6

Example:

<ServiceConfiguration serviceName="Composite.WindowsAzure.Package" 
xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration" osFamily="4" 
osVersion="*" schemaVersion="2014-01.2.3">
<!-- ... -->
</ServiceConfiguration>

Role

ParameterDescriptionValue
nameThe programmatic name of the web role in the service package.[filled in automatically]

Example:

<Role name="CmsWebRole">
<!-- ... -->
</Role>

Instances

ParameterDescriptionValue
countThe number of web role instance to deploy. 1 by default.[a number between 1 and the maximum allowed, e.g. 2]

Example:

<Instances count="1" />

Configuration Settings (BLOB and Role)

ParameterDescriptionValue
DisplayNameThe name of the web role in a specific cloud service. Used in a scaled out website deployment to distinguish between the same role running in various cloud services / data centers.[e.g. 'Web Role - North Europe']
ConnectionStringThe string used to connect to a blob storage. Includes the blob storage account name and access key. Used to store deployment files (in a deployment container) and website files (in a website container). Can be also encrypted.[e.g. 'DefaultEndpointsProtocol=https;AccountName=c1websites;AccountKey={primary_access_key}']
ContainerNameThe name of the web role deployment in a cloud service. The name also used as the name for the deployment container in a blob storage.[e.g. 'deployment']
ConnectionStringEncryptedIf enabled ('true'), the connection string will be assumed encrypted. 'false' by default.['true' or 'false']
UpdateCheckSleepInMillisecondsThe timeout for update checks in the blob in milliseconds. 5000 by default.[e.g. 5000]
MaximumDownloadConcurrencyThe maximum number of concurrent downloads. 50 by default.[e.g. 50]
StatusFilesTouchRateInMinutesThe timeout for the status file's checks in minutes. 10 by default.[e.g. 10]

Example:

<Setting name="WebRole.DisplayName" value="CMS Cloud Service" /> 
<Setting name="WebRole.Blob.ConnectionString" value="DefaultEndpointsProtocol=https;AccountName=mystorage;AccountKey=zPIELz1YoHySxoKju6ZUQhfc7UlRAACrs8K8QScpL9CvS8atWBBLeBd0DcExiB5xyz5l0SevisNVgjSN/iRKOw==" />
<Setting name="WebRole.Blob.ContainerName" value="deployment" />
<Setting name="WebRole.Blob.ConnectionStringEncrypted" value="false" />
<Setting name="WebRole.Blob.UpdateCheckSleepInMilliSeconds" value="5000" />
<Setting name="WebRole.Blob.MaximumDownloadConcurrency" value="50" />
<Setting name="Webrole.Blob.StatusFilesTouchRateInMinutes" value="10" />

Configuration Settings (Diagnostics)

ParameterDescriptionValue
Diagnostics.ConnectionString The string used to connect to a blob storage. Includes the blob storage account name  and access key. Used to store web role diagnostics data. Normally, it is the same as the web role deployment connection string.[e.g. 'DefaultEndpointsProtocol=https;AccountName=c1websites;AccountKey={primary_access_key}']

Example:

 
<Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" 
value="DefaultEndpointsProtocol=https;AccountName={ACCOUNT_NAME};AccountKey={KEY}" />

Configuration Settings (IIS and SMTP)

ParameterDescriptionValue
AppPoolIdleTimeoutMinutesThe application pool's idle timeout (in minutes). 60 by default.[e.g. 60]
 ManageIisConfigurationIndicates whether the IIS will be configured automatically ('true') or manually ('false'). 'true' by default. ['true' or 'false']
 DeleteDefaultSitesIndicates whether the all the websites will be cleared from the IIS before setting up a new one. 'true' by default. ['true' or 'false']
 SmtpServer.InstallIndicates whether the SMTP service will be installed on the server. 'true' by default). ['true' or 'false']

Example:

 
<Setting name="WebRole.Iis.AppPoolIdleTimeoutMinutes" value="60" />
<Setting name="WebRole.Iis.ManageIisConfiguration" value="true" />
<Setting name="WebRole.Iis.DeleteDefaultSites" value="true" />
<Setting name="WebRole.SmtpServer.Install" value="false" />

Certificates

ParameterDescriptionValue
nameThe pre-defined names (0 to 9) for certificates. Can't be changed or removed.
CertificateSlot{0..9} [e.g. "CertificateSlot5"]
thumbprintThe thumbprint of the certificate for SSL support. '8057987CA86216898EE2E06A93DAC725D8F00FE3' by default.
[e.g. 'F182190033077DC6785CFE87FFCA1CD69346DAAA']
thumbprintAlgorithmThe algorithm used to generate the thumbprint ('sha1'). Can't be changed.sha1

Example:

<Certificates>
  <Certificate name="CertificateSlot0" thumbprint="8057987CA86216898EE2E06A93DAC725D8F00FE3" thumbprintAlgorithm="sha1" />
  <Certificate name="CertificateSlot1" thumbprint="8057987CA86216898EE2E06A93DAC725D8F00FE3" thumbprintAlgorithm="sha1" />
  <Certificate name="CertificateSlot2" thumbprint="8057987CA86216898EE2E06A93DAC725D8F00FE3" thumbprintAlgorithm="sha1" />
  <Certificate name="CertificateSlot3" thumbprint="8057987CA86216898EE2E06A93DAC725D8F00FE3" thumbprintAlgorithm="sha1" />
  <Certificate name="CertificateSlot4" thumbprint="8057987CA86216898EE2E06A93DAC725D8F00FE3" thumbprintAlgorithm="sha1" />
  <Certificate name="CertificateSlot5" thumbprint="8057987CA86216898EE2E06A93DAC725D8F00FE3" thumbprintAlgorithm="sha1" />
  <Certificate name="CertificateSlot6" thumbprint="8057987CA86216898EE2E06A93DAC725D8F00FE3" thumbprintAlgorithm="sha1" />
  <Certificate name="CertificateSlot7" thumbprint="8057987CA86216898EE2E06A93DAC725D8F00FE3" thumbprintAlgorithm="sha1" />
  <Certificate name="CertificateSlot8" thumbprint="8057987CA86216898EE2E06A93DAC725D8F00FE3" thumbprintAlgorithm="sha1" />
  <Certificate name="CertificateSlot9" thumbprint="8057987CA86216898EE2E06A93DAC725D8F00FE3" thumbprintAlgorithm="sha1" />
</Certificates>

Note. The default thumbprint value should match that of the default certificate used when deploying the web role with this configuration.