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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | <? 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
Parameter | Description | Value |
serviceName | The programmatic name of the Azure cloud service in the service package | [filled in automatically] |
xmlns | XML namespace | http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration |
osFamily | OS family | 4 |
osVersion | OS version | * |
schemaVersion | The Azure SDK version. Filled in automatically | 2015-04.2.6 |
Example:
1 2 3 4 5 | < ServiceConfiguration serviceName = "Composite.WindowsAzure.Package" osVersion = "*" schemaVersion = "2014-01.2.3" > <!-- ... --> </ ServiceConfiguration > |
Role
Parameter | Description | Value |
name | The programmatic name of the web role in the service package. | [filled in automatically] |
Example:
1 2 3 | < Role name = "CmsWebRole" > <!-- ... --> </ Role > |
Instances
Parameter | Description | Value |
count | The number of web role instance to deploy. 1 by default. | [a number between 1 and the maximum allowed, e.g. 2] |
Example:
1 | < Instances count = "1" /> |
Configuration Settings (BLOB and Role)
Parameter | Description | Value |
DisplayName | The 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'] |
ConnectionString | The 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}'] |
ContainerName | The 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'] |
ConnectionStringEncrypted | If enabled ('true'), the connection string will be assumed encrypted. 'false' by default. | ['true' or 'false'] |
UpdateCheckSleepInMilliseconds | The timeout for update checks in the blob in milliseconds. 5000 by default. | [e.g. 5000] |
MaximumDownloadConcurrency | The maximum number of concurrent downloads. 50 by default. | [e.g. 50] |
StatusFilesTouchRateInMinutes | The timeout for the status file's checks in minutes. 10 by default. | [e.g. 10] |
Example:
1 2 3 4 5 6 7 | < 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)
Parameter | Description | Value |
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:
1 2 | < Setting name = "Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value = "DefaultEndpointsProtocol=https;AccountName={ACCOUNT_NAME};AccountKey={KEY}" /> |
Configuration Settings (IIS and SMTP)
Parameter | Description | Value |
AppPoolIdleTimeoutMinutes | The application pool's idle timeout (in minutes). 60 by default. | [e.g. 60] |
ManageIisConfiguration | Indicates whether the IIS will be configured automatically ('true') or manually ('false'). 'true' by default. | ['true' or 'false'] |
DeleteDefaultSites | Indicates whether the all the websites will be cleared from the IIS before setting up a new one. 'true' by default. | ['true' or 'false'] |
SmtpServer.Install | Indicates whether the SMTP service will be installed on the server. 'true' by default). | ['true' or 'false'] |
Example:
1 2 3 4 | < 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
Parameter | Description | Value |
name | The pre-defined names (0 to 9) for certificates. Can't be changed or removed.
| CertificateSlot{0..9} [e.g. "CertificateSlot5"]
|
thumbprint | The thumbprint of the certificate for SSL support. '8057987CA86216898EE2E06A93DAC725D8F00FE3' by default.
| [e.g. 'F182190033077DC6785CFE87FFCA1CD69346DAAA'] |
thumbprintAlgorithm | The algorithm used to generate the thumbprint ('sha1'). Can't be changed. | sha1 |
Example:
1 2 3 4 5 6 7 8 9 10 11 12 | < 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.