Here is a simple deployment routine, for a reliable and smooth release :-)


1. Create/configure the website and its application pool


2. Copy the files over : setup an FTP(S) connection, as well as the client access (FileZilla, Visual Studio, etc.)


3. Assign writing permissions to the application identity on the relevant folders (for logging, files uploads, etc.)


4. Set time outs to appropriate values
Idle Timeout: you can change it from the default of 20 to however many minutes you want. You can also adjust the setting to 0 (zero) which effectively disables the timeout so that the application pool will never shut down due to being idle. This can be configured in the Advanced Settings of the application pool.
ConnectionTimeOut: specifies the time (in seconds) that IIS waits before it stops a connection that is considered inactive. This can be configured in the Advanced Settings of the Administrative Tools (system.applicationHost/weblimits).


5. Configure Auto-Start
A common problem is the need to perform initialization tasks and "warm up" tasks for a web application. Larger and more complex web applications may need to perform lengthy startup processing, prime in-memory caches, generate content, etc... prior to serving the first HTTP request. One way to fix this is to twist a couple of properties in the application initialization module:
- Set the application pool StartMode property to AlwaysRunning
- Set PreloadEnabled to true, and specify the application pool and path


6. Configure SQL Server / Set up automatic data Backups
Create a maintenance backup plan with SQL Agent


7. HTTPS / SSL Certificate Installation
HTTPS provides security, identity, SEO, access to HTML5 powerful features and more.