Comment on page

Microsoft IIS

Deploy on windows Server 2016+.


  1. 1.
    IIS 7 or above with .NET 8 hosting bundle installed
We strongly recommend SSL for non-local domain based websites
If you are running IIS as a cluster node make sure to read the cluster / scale out setup section.

Required downloads

To setup ngSurvey on IIS you will need to first download and install the latest .NET Core package with its Windows hosting bundle installer. Microsoft .NET 8 Hosting Bundle Once installed you may download the ngSurvey archive from following location. ngSurvey installation zip package

Installation steps

  1. 1.
    Create a ngSurvey folder on the machine hosting the IIS Server
  2. 2.
    unzip the ngSurvey package zip content that folder
  3. 3.
    In Windows open the IIS Manager
  4. 4.
    In the Sites tree of the IIS Manager, right click Sites and Add website
  5. 5.
    Set the Physical path folder to the folder where you unzipped the content of the ngSurvey zip install package
  6. 6.
    Once you have created the site, go to the Application Pools in the IIS Manager and open the properties of the website application pool, the name is the name of the website you just created
  7. 7.
    Set the .NET CLR Version to No Managed Code
  8. 8.
    We recommend setting the Idle Time-out (minutes) option to 0 in the Advanced settings of the application pool
  9. 9.
    Open the web.config file using an text editor.
  10. 10.
    Uncomment the environment variable line and set the connection string to the server hosting the ngSurvey database. If you're using MySQL as your database back please follow the MySQL configuraiton tutorial.
    • ConnectionStrings:NGSurveyDB Connectionstring to the server hosting the ngSurvey database
    • NGSurvey:AutoDBSetup Sets ngSurvey to upgrade / install the database automatically. Default is true.
  11. 11.
    Optional but most secure option - Azure Key vault. Instead of the web.config you may also store ngSurvey settings and connection string within an Azure key vault by setting following environment variables on your server.
    • KeyVault:Name is the name of your azure key vault
    • AzureAd:ClientId is the client id to access your key vault
    • AzureAd:ClientSecret is the client secret to access your key vault
  12. 12.
    Open your browser and navigate to your site root
  13. 13.
    Use following default credentials for ngSurvey Email : ngsadmin password : admin
  14. 14.
    Once logged make sure to change the default admin password with a password of your choice from the user management screen.
  15. 15.
    You may also setup additional settings like mail servers, captcha and translation services from the system settings page.
  16. 16.
    Enjoy a great survey tool!
You may for the health / working status your ngSurvey installation at https://yourrootsite/api/system/status

Database setup

Out of the box ngSurvey will automatically configure / create / update the database that is specified in your connectionstring. Note that If you run your container under AWS ngSurvey will automatically pick up all RDS connection properties. If you do not want to have ngSurvey update automatically your database you can turn off the automatic database setup by setting the environment variable NGSurvey:AutoDBSetup to false. If you prefer to do a manual database setup you may either grab the DACPAC file from the container's app/database directory of the archive and follow the Microsoft SQL Server database installation procedure or follow the MySQL database installation procedure if you are using a MySQL database.
Database requires SQL Server 2016 or above or MySQL 8 or above