External Hosting: Windows Server & IIS Configuration

James Vidler -

This document serves as guide on how to choose the right hardware, and configure Windows Server & IIS for hosting an Agility website.

Recommended Server Specifications

This represents the absolute minimum requirements to host an Agility Website. Hardware requirements such as CPU and RAM will differ depending on application load. We recommend running load tests to ensure you have the appropriate hardware before launching in production.

  • Windows Server 2008 R2 (or newer)
  • IIS 7 (or newer)
  • Single Core Processor (minimum)
  • 2GB RAM (minimum)
  • At least two servers in a load-balancer configuration for redundancy


Required Windows Features

Below outlines the required and recommended windows features to be installed. This is not an exhaustive list, as the website/application itself may have specific dependencies.

  • FileAndStorage-Services
  • Storage-Services
  • Web-Server
  • Web-WebServer
  • Web-Common-Http
  • Web-Default-Doc
  • Web-Dir-Browsing
  • Web-Http-Errors
  • Web-Static-Content
  • Web-Http-Redirect
  • Web-Health
  • Web-Http-Logging
  • Net-Http-Activation
  • Web-Http-Tracing
  • Web-Log-Libraries
  • Web-Request-Monitor
  • Web-Performance
  • Web-Stat-Compression
  • Web-Dyn-Compression
  • Web-Security
  • Web-Filtering
  • Web-App-Dev
  • Web-Net-Ext45
  • Web-Asp-Net
  • Web-Asp-Net45
  • Web-CGI
  • Web-ISAPI-Ext
  • Web-ISAPI-Filter
  • Web-Mgmt-Tools
  • Web-Mgmt-Console
  • Web-Mgmt-Compat
  • NET-Framework-Features
  • NET-Framework-45-Features
  • NET-Framework-45-ASPNET
  • NET-WCF-Services45
  • NET-WCF-HTTP-Activation45
  • NET-WCF-TCP-PortSharing45
  • User-Interfaces-Infra
  • Server-Gui-Mgmt-Infra
  • Server-Gui-Shell
  • WAS
  • WAS-Process-Model
  • WAS-Config-APIs


Required Ports

An Agility website only requires port 80 to be open. Port 80 can be used for standard HTTP traffic as well as Content Sync. Port 443 must also be open if you are intending to be over HTTPS/SSL. Agility can also use port 443 for Content Sync. See HTTPS Syncing with Agility for more information.


Adding the Website to IIS

After you have IIS and its associated Windows Features installed, next you need to add a new Website to IIS. 

  1. Open IIS
  2. Add new Website
  3. Add host header bindings (and any SSL certificates)
  4. Point the location of the website to the local directory which contains your Agility Website code
  5. Add any appropriate permissions to the Application Pool so it may access the directory which contains your website code


Configure the Agility Content Repository

Your Agility website will store content files within a directory in your filesystem. You can set the location of this directory by modifying the web.config of the Agility website and changing the contentCacheFilePath value. For more information, please see External Hosting: Content Sync Setup.


Configure the Agility Web Logs Directory

Your Agility website will log application errors to a log file (one per day). You can set where to store these by modifying the web.config file of the Agility website and changing the logFilePath value.


Verify the AgilityWebsiteService.svc Endpoint

Lastly, after setting up IIS and adding your website, you need to verify that the AgilityWebsiteService.svc endpoint is working correctly. To do this, you can open a web browser and navigate directly to {domain-name/ipaddress}/AgilityWebsiteService.svc. If it is configured correctly, you should see a page similar to below:



Securing your Web Server

For best practices on securing your web server please see Microsoft's knowledge base article Security Best Practices for IIS.


Getting Support

If your are experiencing any difficulties configuring your Agility website, please contact support@agilitycms.com for assistance.

Have more questions? Submit a request


Please sign in to leave a comment.