IC-Web Deployment

Requirements

IC-Web Supported Browsers

  • Chrome 54.0 or above

  • Microsoft Edge 79 or above

  • Safari 9.1 or above

  • Firefox 53.0 or above. 3D drawings may be slower in Firefox.

IC-Web Server

  • Processor: Minimum Core i5 / i7

  • Memory: Minimum 4GB RAM

  • Hard Disk: Minimum 30GB

  • Server OS: Microsoft Windows Server 2016 (or higher) supported.

  • Web server software: Microsoft Internet Information Services (IIS) 8.5 with

    • ISAPI Extensions

    • IIS Management Studio (highly recommended)

  • ODBC Drivers: Version 17 required. (Download)

  • Connection to SQL server running a NEXUS IC database

Installation

Perform the following steps on the web server:

  1. Run ICWebSetup.exe.

  2. Accept the License Agreement.

  3. If you don’t have Internet Information Service (IIS) installed, then select Yes, otherwise select No.

  4. Select New Website.

  5. On the New Website Details page, enter data as follows:

    • New Website Name - Enter the name of the website in IIS.

    • New Website App Pool Name - Specify the name of the Application Pool the website will use.

    • Run Website as - Specify the username of an account with rights to connect to the SQL server and DB_OWNER of the NEXUS IC database. Note that in case of a domain account, this must be in the format domain\username.

    • User’s Password - Specify the password of that account specified above.

    _images/ic-web.deployment_guide.new_website.png

  1. On the destination page, specify the IC-Web path where the website will be installed to.

  2. On the Website Bindings page, specify the following:

    • Website Binding URL Name - Set the URL of the website binding. Normally it is fine to leave as *.

    • Port - Leave it as port 80 unless your web server listens on a non-standard port.

  3. On the NEXUS Database Connection Details page, enter data as follows:

    • Specify Microsoft SQL Server - Specify the IP address or domain name, and database server instances.

    • Specify NEXUS Database - Enter the name of the NEXUS IC database hosted on the SQL server.

    _images/ic-web.deployment_guide.database.png

  4. Click Install to set up the file and complete the configuration.

  5. The last step contains a link to a driver for ODBC Driver 17 for SQL Server (Download). This must be downloaded and installed on the server before you run IC-Web.

Updating

If you have installed IC-Web once and just want to update to a new version without having to reconfigure the web server, follow the steps below on the web server:

  1. Stop the World Wide Web Publishing Service via services.msc.

  2. Run ICWebSetup.exe.

  3. Accept the License Agreement.

  4. Select No to install IIS (as you already have IIS installed).

  5. Select Update Existing when asked if you want to update you existing version.

    _images/ic-web.deployment_guide.update_existing.png

  6. Click Next.

  7. Click Install.

    This will install the new version of IC-Web but will leave the web server settings and configurations settings as they are.

  8. Start the World Wide Web Publishing Service via services.msc.

Configure IIS

Once installed, IIS should be set up and IC-Web should be running on the HTTP protocol on port 80 of your web server. Running IIS on HTTP should only be done for initial testing. As soon as you are happy with the deployment, you must modify the IC-Web website to use Secure HTTP (HTTPS) and stop the IC-Web HTTP protocol or redirect it to HTTPS. Not doing this step is a security risk and exposes users’ passwords so it is vital that this is done straight away.

HTTPS Configuration

  1. Open IIS Manager, expand out the website tree and select the IC-Web website.

  2. On the Actions section on the right of IIS Manager click on Bindings….

    _images/ic-web.deployment_guide.binding.png

  3. Remove the HTTP item. (Note: you may leave this if you intend to redirect HTTP to HTTPS and understand the security ramifications. This is not covered by this deployment guide.)

  4. Add an HTTPS item. This will require at least one SSL certificate on your server to do this without errors. Your bindings should now look like this:

    _images/ic-web.deployment_guide.new_binding.png

  5. You should now be able to browse to your website via https://<your site>, and http://<your site> should give you a 404 file not found error.

Web server

If you want to manually check server settings, follow the steps below:

  1. Open IIS Manager and open the ISAPI and CGI Restrictions.

  2. Make sure there is an entry for <the_path_you_set_during_installation>\webroot\data\ICWeb.dll.

  3. Double click Feature Delegation. Make sure Handle Mapping is set to Read/Write.

  4. Select Application Pools and select the ICWeb application pool.

  5. Click on the Advanced Settings. Make sure Enable 32-Bit Application is set to False.

  6. Ensure that the Identity in the application pool advanced settings is set to the correct username and password.

  7. Open the ICWeb website in the IIS tree.

  8. Expand out the tree and select the data directory under the ICWeb website.

  9. Open Handle Mappings.

  10. Click on Edit Feature Permissions on the right. Make sure Execute is ticked.

Website

The installer performs these settings for you, however, if you want to check the settings, follow the steps below:

  1. Select the IC-Web website and select Advanced Settings in IIS Manager.

  2. Check that the Physical Path is correct. Note that this should correspond to the destination path specified during installation with “\webroot” added. For example, if it was “c:\Websites\ICWeb”, the physical path should be “c:\Websites\ICWeb\webroot”.

  3. Check the Physical Path credentials.

Configure IC-Web

The installer automatically configures IC-Web and populates the fields for you. However, if you want to check or modify these settings, proceed as described below.

  1. Open the ICWeb website in the IIS tree.

  2. Expand the tree and select the data directory under the ICWeb website.

  3. Double-click the Configuration Editor.

  4. Open the Collection. The Collection contains the following 6 entries (4 mandatory and 2 optional parameters):

    • Server - This is the domain name or IP address and instance of the SQL server.

    • DatabaseName - This is the name of the NEXUS IC database on the SQL server.

    • Username - This attribute contains the username of a NEXUS account that exists and is enabled in the Database.

    • InstallPath - This is the directory location of the directory that holds the IC-Web \webroot directory.

    • LogLevel - (optional) Allows you to specify the log level of the ICWeb.dll.

    • TokenUrl - (optional) The URL address of the ICWeb homepage - this is used by email/token authentication methods.

    If you want to use SQL authentication instead of Windows authentication for the SQL connection between IIS and the SQL server, then the following parameters must be added:

    • sqlUserName - User name used to authenticate to a database server.

    • sqlPassword - Password used to authenticate to a database server.

Note

These values are case-sensitive.

Authentication

Authentication can be performed via a local NEXUS account or a Single Sign On account.

  • If your IC-Web account is a local NEXUS IC account, just enter this as the username and password.

  • If your account has been set up in NEXUS as a SSO account, then your username must be in full UPN format username@domain. Your password is just your normal SSO password.

    _images/ic-web.deployment_guide.login.png

Common Errors and Troubleshooting

Test the REST service

Test the REST services is working:

  1. Turn on Error Pages by opening IIS manager and selecting the web server.

  2. Open Error Pages.

  3. Click Edit Feature Settings and set it to Detailed Errors.

  4. Open ICWeb.dll by browsing to your website address and adding /data/ICWeb.dll to the end of the address URL. This should bring up a default page for the ICWeb.dll rest service similar to the image below. If there are any errors with the DLL, they should show here.

_images/icweb.deployment_guide.dll_working.png

If you get a completely blank screen here, ensure that you have installed the ODBC Driver 17 for SQL Server (https://www.microsoft.com/en-us/download/details.aspx?id=56567).

If the ICWeb.dll tries to download instead of run, ensure that the web server is configured to execute ISAPI extensions. See the last item under Configure IIS -> Web server.

File Size Errors

You may encounter a “File Size Error” when uploading files:

_images/icweb.deployment_guide.file_size_error.png

In this case, you may need to adjust a setting on your IIS server to allow your users to upload larger files as described below:

  1. Locate the web.config file.

    On your web server, navigate to the location where you installed IC-Web. Look for the <installedLocation>webrootdatadirectory, which contains the web.config file.

  2. Open the web.config file with a text editor and make sure that the line circled below is included. If it’s not included, you must add it there:

    _images/icweb.deployment_guide.file_size_setting.png

    The maxAllowedContentLength value represents the maximum file size allowed to be loaded onto the server and thus inserted into the NEXUS IC database, measured in bytes. In this example, it’s set to 1073741824 Bytes (which is 1GB).

  3. Save the modified file.

IIS Server Modules

Ensure the following modules are installed and running in IIS through the Add Roles and Features sections of your server:

  • Default Document

  • HTTP Errors

  • Static Content

  • Static Content Compression

  • HTTP Logging

  • ISAPI Extensions

  • IIS Management Console

Ensure that the Application Pool and the website account have rights to run the website and connect to the SQL server and NEXUS Database.