IISWebAppDeployment@1 - IIS Web App deployment (Deprecated) v1 task

Use this task to deploy IIS Web App using MSDeploy, then create or update websites and app pools.

Important

This task is deprecated and will be retired January 31, 2024. Use IIS Web App Deployment Using WinRM - Viual Studio Marketplace.

Use this task to deploy IIS Web App using MSDeploy, then create or update websites and app pools.

Important

This task is deprecated. Use IIS Web App Deployment Using WinRM - Viual Studio Marketplace.

Syntax

# IIS Web App deployment (Deprecated) v1
# Deploy using MSDeploy, then create/update websites and app pools.
- task: IISWebAppDeployment@1
  inputs:
    EnvironmentName: # string. Required. Machines. 
    #AdminUserName: # string. Admin Login. 
    #AdminPassword: # string. Password. 
    #WinRMProtocol: # 'Http' | 'Https'. Protocol. 
    #TestCertificate: true # boolean. Optional. Use when WinRMProtocol = Https. Test Certificate. Default: true.
  # Deployment
    WebDeployPackage: # string. Required. Web Deploy Package. 
    #WebDeployParamFile: # string. Web Deploy Parameter File. 
    #OverRideParams: # string. Override Parameters. 
  # Website
    #CreateWebSite: false # boolean. Create or Update Website. Default: false.
    #WebSiteName: # string. Required when CreateWebSite = true. Website Name. 
    #WebSitePhysicalPath: '%SystemDrive%\inetpub\wwwroot' # string. Required when CreateWebSite = true. Physical Path. Default: %SystemDrive%\inetpub\wwwroot.
    #WebSitePhysicalPathAuth: 'Application User (Pass-through)' # 'WebSiteUserPassThrough' | 'WebSiteWindowsAuth'. Required when CreateWebSite = true. Physical Path Authentication. Default: Application User (Pass-through).
    #WebSiteAuthUserName: # string. Required when WebSitePhysicalPathAuth = WebSiteWindowsAuth. User Name. 
    #WebSiteAuthUserPassword: # string. Optional. Use when WebSitePhysicalPathAuth = WebSiteWindowsAuth. Password. 
    #AddBinding: true # boolean. Optional. Use when CreateWebSite = true. Add Binding. Default: true.
    #AssignDuplicateBinding: false # boolean. Optional. Use when AddBinding = true. Assign Duplicate Binding. Default: false.
    Protocol: 'http' # 'https' | 'http'. Required when AddBinding = true. Protocol. Default: http.
    IPAddress: 'All Unassigned' # string. Required when AddBinding = true. IP Address. Default: All Unassigned.
    Port: '80' # string. Required when AddBinding = true. Port. Default: 80.
    #ServerNameIndication: false # boolean. Optional. Use when Protocol = https. Server Name Indication Required. Default: false.
    #HostNameWithOutSNI: # string. Optional. Use when ServerNameIndication = false. Host Name. 
    #HostNameWithHttp: # string. Optional. Use when Protocol = http. Host Name. 
    #HostNameWithSNI: # string. Required when ServerNameIndication = true. Host Name. 
    #SSLCertThumbPrint: # string. Required when Protocol = https. SSL Certificate Thumb Print. 
  # Application Pool
    #CreateAppPool: false # boolean. Create or Update Application Pool. Default: false.
    #AppPoolName: # string. Required when CreateAppPool = true. Name. 
    #DotNetVersion: 'v4.0' # 'v4.0' | 'v2.0' | 'No Managed Code'. Required when CreateAppPool = true. .NET Version. Default: v4.0.
    #PipeLineMode: 'Integrated' # 'Integrated' | 'Classic'. Required when CreateAppPool = true. Managed Pipeline Mode. Default: Integrated.
    #AppPoolIdentity: 'ApplicationPoolIdentity' # 'ApplicationPoolIdentity' | 'LocalService' | 'LocalSystem' | 'NetworkService' | 'SpecificUser'. Required when CreateAppPool = true. Identity. Default: ApplicationPoolIdentity.
    #AppPoolUsername: # string. Required when AppPoolIdentity = SpecificUser. Username. 
    #AppPoolPassword: # string. Optional. Use when AppPoolIdentity = SpecificUser. Password. 
  # Advanced
    #AppCmdCommands: # string. Additional AppCmd.exe Commands. 
    #DeployInParallel: true # boolean. Deploy in Parallel. Default: true.
    #ResourceFilteringMethod: 'machineNames' # 'machineNames' | 'tags'. Select Machines By. Default: machineNames.
    #MachineFilter: # string. Deploy to Machines.
# IIS Web App deployment (Deprecated) v1
# Deploy by MSDeploy, create/update website & app pools.
- task: IISWebAppDeployment@1
  inputs:
    EnvironmentName: # string. Required. Machines. 
    #AdminUserName: # string. Admin Login. 
    #AdminPassword: # string. Password. 
    #WinRMProtocol: # 'Http' | 'Https'. Protocol. 
    #TestCertificate: true # boolean. Optional. Use when WinRMProtocol = Https. Test Certificate. Default: true.
  # Deployment
    WebDeployPackage: # string. Required. Web Deploy Package. 
    #WebDeployParamFile: # string. Web Deploy Parameter File. 
    #OverRideParams: # string. Override Parameters. 
  # Website
    #CreateWebSite: false # boolean. Create or Update Website. Default: false.
    #WebSiteName: # string. Required when CreateWebSite = true. Website Name. 
    #WebSitePhysicalPath: '%SystemDrive%\inetpub\wwwroot' # string. Required when CreateWebSite = true. Physical Path. Default: %SystemDrive%\inetpub\wwwroot.
    #WebSitePhysicalPathAuth: 'Application User (Pass-through)' # 'WebSiteUserPassThrough' | 'WebSiteWindowsAuth'. Required when CreateWebSite = true. Physical Path Authentication. Default: Application User (Pass-through).
    #WebSiteAuthUserName: # string. Required when WebSitePhysicalPathAuth = WebSiteWindowsAuth. User Name. 
    #WebSiteAuthUserPassword: # string. Optional. Use when WebSitePhysicalPathAuth = WebSiteWindowsAuth. Password. 
    #AddBinding: true # boolean. Optional. Use when CreateWebSite = true. Add Binding. Default: true.
    #AssignDuplicateBinding: false # boolean. Optional. Use when AddBinding = true. Assign Duplicate Binding. Default: false.
    Protocol: 'http' # 'https' | 'http'. Required when AddBinding = true. Protocol. Default: http.
    IPAddress: 'All Unassigned' # string. Required when AddBinding = true. IP Address. Default: All Unassigned.
    Port: '80' # string. Required when AddBinding = true. Port. Default: 80.
    #ServerNameIndication: false # boolean. Optional. Use when Protocol = https. Server Name Indication Required. Default: false.
    #HostNameWithOutSNI: # string. Optional. Use when ServerNameIndication = false. Host Name. 
    #HostNameWithHttp: # string. Optional. Use when Protocol = http. Host Name. 
    #HostNameWithSNI: # string. Required when ServerNameIndication = true. Host Name. 
    #SSLCertThumbPrint: # string. Required when Protocol = https. SSL Certificate Thumb Print. 
  # Application Pool
    #CreateAppPool: false # boolean. Create or Update Application Pool. Default: false.
    #AppPoolName: # string. Required when CreateAppPool = true. Name. 
    #DotNetVersion: 'v4.0' # 'v4.0' | 'v2.0' | 'No Managed Code'. Required when CreateAppPool = true. .NET Version. Default: v4.0.
    #PipeLineMode: 'Integrated' # 'Integrated' | 'Classic'. Required when CreateAppPool = true. Managed Pipeline Mode. Default: Integrated.
    #AppPoolIdentity: 'ApplicationPoolIdentity' # 'ApplicationPoolIdentity' | 'LocalService' | 'LocalSystem' | 'NetworkService' | 'SpecificUser'. Required when CreateAppPool = true. Identity. Default: ApplicationPoolIdentity.
    #AppPoolUsername: # string. Required when AppPoolIdentity = SpecificUser. Username. 
    #AppPoolPassword: # string. Optional. Use when AppPoolIdentity = SpecificUser. Password. 
  # Advanced
    #AppCmdCommands: # string. Additional AppCmd.exe Commands. 
    #DeployInParallel: true # boolean. Deploy in Parallel. Default: true.
    #ResourceFilteringMethod: 'machineNames' # 'machineNames' | 'tags'. Select Machines By. Default: machineNames.
    #MachineFilter: # string. Deploy to Machines.

Inputs

EnvironmentName - Machines
string. Required.

Specifies a comma-separated list of machine IP addresses or FQDNs, along with ports. The default port is based on the selected protocol, for example dbserver.fabrikam.com or dbserver_int.fabrikam.com:5986,192.168.12.34:5986. You can also provide the output variable of other tasks, for example $(variableName).


AdminUserName - Admin Login
string.

Specifies the administrator login for the target machines.


AdminPassword - Password
string.

Specifies the administrator password for the target machines. It can accept variables defined in build/release definitions, such as $(passwordVariable). You may mark the variable type as secret to secure it.


WinRMProtocol - Protocol
string. Allowed values: Http, Https.

Specifies the protocol used for the WinRM connection with the machine(s). The default is HTTPS.


TestCertificate - Test Certificate
boolean. Optional. Use when WinRMProtocol = Https. Default value: true.

Selects the option to skip validating the authenticity of the machine's certificate by a trusted certification authority. The parameter is required for the WinRM HTTPS protocol.


WebDeployPackage - Web Deploy Package
string. Required.

Specifies the location of the Web Deploy (MSDeploy) zip file on the target machines or on a UNC path like, \\BudgetIT\WebDeploy\WebDeployPackage.zip. The UNC path should be accessible to the machine's administrator account. Environment variables are also supported, like $env:windir, $env:systemroot, and $env:windir\FabrikamFibre\Web.


WebDeployParamFile - Web Deploy Parameter File
string.

Specifies the location of the parameter file on the target machines or on a UNC path. The parameter file is used to override Web application configuration settings, like the IIS Web application name or database connection string.


OverRideParams - Override Parameters
string.

Parameters specified here will override the parameters in the MSDeploy zip file and the parameter file. To override more than one parameter, use a line separator.
For example, "IIS Web Application Name"="Fabrikam" or "ConnectionString"="Server=localhost;Database=Fabrikam;".


CreateWebSite - Create or Update Website
boolean. Default value: false.

Specifies the option to create a website or to update an existing website.


WebSiteName - Website Name
string. Required when CreateWebSite = true.

Specifies the name of the IIS website that will be created if it does not exist, or it will be updated if it is already present on the IIS server. The name of the website should be the same as that specified in the web deploy zip package file. If a parameter file and override parameters setting is also specified, then the name of the website should be the same as that in the override parameters setting.


WebSitePhysicalPath - Physical Path
string. Required when CreateWebSite = true. Default value: %SystemDrive%\inetpub\wwwroot.

Specifies the physical path where the website content is stored. The content can reside on the local computer or on a remote directory or share, like C:\Fabrikam or \\ContentShare\Fabrikam.


WebSitePhysicalPathAuth - Physical Path Authentication
string. Required when CreateWebSite = true. Allowed values: WebSiteUserPassThrough (Application User (Pass-through)), WebSiteWindowsAuth (Windows Authentication). Default value: Application User (Pass-through).

Specifies the authentication mechanism for accessing the physical path of the website.


WebSiteAuthUserName - User Name
string. Required when WebSitePhysicalPathAuth = WebSiteWindowsAuth.

Specifies the user name for accessing the website's physical path.


WebSiteAuthUserPassword - Password
string. Optional. Use when WebSitePhysicalPathAuth = WebSiteWindowsAuth.

Specifies the password for accessing the website's physical path. If you are using a gMSA, this is not required.


AddBinding - Add Binding
boolean. Optional. Use when CreateWebSite = true. Default value: true.

Specifies the option to add port binding for the website.


AssignDuplicateBinding - Assign Duplicate Binding
boolean. Optional. Use when AddBinding = true. Default value: false.

Specifies the option to add the bindings specified here (even if there is another website with the same bindings). If there are binding conflicts, only one of the websites will start.


Protocol - Protocol
string. Required when AddBinding = true. Allowed values: https, http. Default value: http.

Specifies either HTTP for the website to have an HTTP binding or HTTPS for the website to have a Secure Sockets Layer (SSL) binding.


IPAddress - IP Address
string. Required when AddBinding = true. Default value: All Unassigned.

Specifies an IP address that users can use to access the website. If All Unassigned is selected, the site will respond to requests for all IP addresses on the port and the optional host name that is specified for the site. The site will not respond to requests if another site on the server has a binding on the same port but with a specific IP address.


Port - Port
string. Required when AddBinding = true. Default value: 80.

Specifies the port on which Hypertext Transfer Protocol Stack (HTTP.sys) must monitor for requests made to this website.


ServerNameIndication - Server Name Indication Required
boolean. Optional. Use when Protocol = https. Default value: false.

Determines whether the website requires Server Name Indication (SNI). SNI extends the SSL and TLS protocols to indicate what host name the client is attempting to connect to. It allows multiple secure websites with different certificates to use the same IP address.


HostNameWithOutSNI - Host Name
string. Optional. Use when ServerNameIndication = false.

Assigns one or more host names (or domain names) to a computer that uses a single IP address. If a host name is specified then the clients must use the host name instead of the IP address to access the website.


HostNameWithHttp - Host Name
string. Optional. Use when Protocol = http.

Assigns one or more host names (or domain names) to a computer that uses a single IP address. If a host name is specified then the clients must use the host name instead of the IP address to access the website.


HostNameWithSNI - Host Name
string. Required when ServerNameIndication = true.

Assigns one or more host names (or domain names) to a computer that uses a single IP address. If a host name is specified then the clients must use the host name instead of the IP address to access the website.


SSLCertThumbPrint - SSL Certificate Thumb Print
string. Required when Protocol = https.

Specifies the thumb-print of the Secure Socket Layer certificate that the website is going to use. The certificate should already be installed on the machine and present under the Local Computer Personal store.


CreateAppPool - Create or Update Application Pool
boolean. Default value: false.

Specifies the option to create an application pool or to update an existing application pool.


AppPoolName - Name
string. Required when CreateAppPool = true.

Specifies the name of the IIS application pool to create or update. The existing application pool will be updated with the settings specified.


DotNetVersion - .NET Version
string. Required when CreateAppPool = true. Allowed values: v4.0, v2.0, No Managed Code. Default value: v4.0.

Specifies the version of the .NET Framework that is loaded by this application pool. If the applications assigned to this application pool do not contain managed code, select the No Managed Code option from the list.


PipeLineMode - Managed Pipeline Mode
string. Required when CreateAppPool = true. Allowed values: Integrated, Classic. Default value: Integrated.

Managed pipeline mode specifies how IIS processes requests for managed content. Use classic mode only when the applications in the application pool cannot run in integrated mode.


AppPoolIdentity - Identity
string. Required when CreateAppPool = true. Allowed values: ApplicationPoolIdentity, LocalService, LocalSystem, NetworkService, SpecificUser (Custom Account). Default value: ApplicationPoolIdentity.

Configures the account under which an application pool's worker process runs. Specify one of the predefined security accounts, or configure a custom account.


AppPoolUsername - Username
string. Required when AppPoolIdentity = SpecificUser.


AppPoolPassword - Password
string. Optional. Use when AppPoolIdentity = SpecificUser.

If you are using a gMSA, this is not required.


AppCmdCommands - Additional AppCmd.exe Commands
string.

Specifies additional AppCmd.exe commands to set the website or application pool properties. For more than one command, use a line separator.
For example:
<list app pools>
<list sites>


DeployInParallel - Deploy in Parallel
boolean. Default value: true.

If set to true, the Web application is deployed in-parallel on the target machines.


ResourceFilteringMethod - Select Machines By
string. Allowed values: machineNames (Machine Names), tags. Default value: machineNames.

Optional. Specifies a subset of machines by providing machine names or tags.


MachineFilter - Deploy to Machines
string.

This input is only valid for machine groups and is not supported for a flat list of machines or output variables yet.

Specifies a list of machines, like dbserver.fabrikam.com, webserver.fabrikam.com, 192.168.12.34 or tags, like Role:DB; OS:Win8.1. If multiple tags are provided, the task will run in all of the machines with the specified tags. For Azure Resource Groups, specify the virtual machine's name, like ffweb, ffdb. The default runs the task in all machines.


Task control options

All tasks have control options in addition to their task inputs. For more information, see Control options and common task properties.

Output variables

None.

Remarks

Important

This task is deprecated. Use IIS Web App Deployment Using WinRM - Viual Studio Marketplace.

Requirements

Requirement Description
Pipeline types YAML, Classic build, Classic release
Runs on Agent, DeploymentGroup
Demands None
Capabilities This task does not satisfy any demands for subsequent tasks in the job.
Command restrictions Any
Settable variables Any
Agent version 1.91.0 or greater
Task category Deploy