In Windows Server, follow these steps to install IIS:
In the Server Manager → Dashboard→ Add Roles and Features
Select Role-based or feature-based installation
Select your server from the server pool, and select your server from the list
In Server Roles → select Web Server (IIS) → Add Features
Select .NET Framework 3.5
Select .NET Framework 4.6 and ASP.NET 4.6 (or later)
In Web Server Role (IIS) → Role Services
In Web Server, ensure that Common HTTP Features → Static Content is ticked
In Application Development, select .NET Extensibility, ASP, ASP.NET, ISAPI Extensions, ISAPI Filters and Websocket Protocol
In Management tools, tick all boxes
Click on Install and wait for the features to be installed
Restart the server if required
Download openIMIS Web Application
Download and unzip the release from Github web_app_vb repository into a new folder under the IIS wwwroot (e.g. C:\inetpub\wwwroot\openIMIS.1.4.0).
The configuration of IIS done through Internet Information Service (IIS) Manager.
Add a site
In Internet Information Service (IIS) Manager:
Select your server name → Sites
Remove the Default Web Site (if new installation)
Right-click on Sites → Add Website
Enter a site name for your openIMIS instance (e.g. openIMIS.1.4.0)
Enter or select the physical pathname (e.g. C:\inetpub\wwwroot\openIMIS.1.4.0)
If you have an SSL certificate, select binding type to HTTPS (port 443) and select your certificate
If you don't have an SSL certificate, select binding type to HTTP (port 80)
If you have selected the binding type to HTTPS (port 443), then you will have to add also the binding type for HTTP
Right-click on the new added website
Select Edit Bindings
Select binding type HTTP (port 80) and click ok
If you have a DNS address (e.g. demo.openimis.org) that is mapped to your server IP address, you can add it in the site binding configuration as the hostname. This will allow having multiple Sites deserving same ports (80 and 443) and can be used to have, for example, openIMIS development (e.g. dev.openimis.org) and production (e.g. demo.openimis.org) sites on the same server.
Depending on the server’s initial configuration, the date format may differ from the expected DD/mm/YYYY format. To force the date format, go to the openIMIS site, then select Culture → .NET Globalisation, and select English (United Kingdom) (en-GB) as a culture.
Configure openIMIS Web Application
Edit the web.config
The web.config provides the configuration for openIMIS Web Application, including database connection string and necessary folders.
To configure the database connection string, go in openIMIS root folder (e.g. C:\inetpub\wwwroot\openIMIS.1.4.0), locate the web.config file and edit IMISConnectionString entry so that the connection string points to the database created in openIMIS database section with the right credentials. For example:
Other configuration settings can be found within the <appSettings> tag and should be modified with caution.
Assign permission to source folders
In openIMIS root folder (e.g. C:\inetpub\wwwroot\openIMIS.1.6.0), IIS_IUSRS need to be given full control of the following folders: Archive, Extracts, FromPhone, Images, Workspace.
Repeat the following steps for each folder listed above:
Right-click on the folder and select properties
Ensure that the folder is not read-only
Select the Security tab
Click on Edit
Select IIS_IUSRS and allow full control (in the below section).
Then apply and click OK.
This can also be done automatically for all the above mentioned folders by running the provided set_folders_rights.ps1 script from a PowerShell console with Administrator rights (right click on PowerShell shortcut and select Run as administrator.
Edit permissions to Windows event logs
Click on the Windows Start menu of run Regedit via the search box:
In the Registry Editor, select HKEY_LOCAL_MACHINE → System → CurrentControlSet → Services → Eventlog.
Right-click on the EventLognode, select Permission. Give full permissions to IIS_IUSRS, as described in the above paragraph (Assign permission to source folders). If the IIS_IUSRS user is not present in the list, then click Add button to add it manually.
Now repeat the same steps for Eventlog → Security and Eventlog → State node, as it can be required depending on the server’s environment.