How to install the QLM License Server
Overview
The License Server is a web service with a SQL Server database that enables the following functionality:
Online activation
Server-side license validation
License Management
Customer Management
Analytics
and much more
The QLM License Server must be installed in the cloud so that it is accessible to your customers.
The system requirements for the QLM License Server are:
Windows 2012 R2 server or higher.
ASP.NET Framework 4.62
Microsoft SQL Server Database (any edition including the free SQL Server Express)
Full Trust for .NET assemblies.
Before installing the QLM License Server, make sure the above components are installed on your system. To install IIS and enable ASP.NET on your Windows Server, read this article.
The License Server can be installed in 2 ways: (a) by running the provided setup program QlmLicenseServerSetup.exe or (b) by executing the installation steps manually.
If you are hosting your own website, then the procedure [1] below is recommended. If your site is hosted at an ISP, then you may need to use the procedure [2].
Automated installation
License Server Installation
To install the QLM License Server:
Locate the QlmLicenseServerSetup.exe setup program in the QLM installation folder. Typically this file is located under:
QLM v8 and higher: %Public%\Documents\Quick License Manager\DeployToServer
QLM v7: C:\Program Files\Soraco\QuickLicenseMgr\DeployToServer
Copy QlmLicenseServerSetup.exe to your server
Execute QlmLicenseServerSetup.exe on the server
Follow the onscreen instructions.
QLM Management Console Configuration
To configure the QLM Management Console to connect to your QLM License Server:
Launch the QLM Management Console
Go to the Manage Keys tab
Click Sites
Click Add to add a new site
Specify a site name
In the Primary site field, enter the URL to the License Server: For example: https://mycompany.net/qlm/qlmlicenseserver/qlmservice.asmx
Set the Database Engine to SQL Server
Go to the Encryption Keys tab, then click New for CommunicationEncryptionKey and AdminEncryptionKey
On the server where you installed the QLM License Server, edit each web.config file and update the value of the CommunicationEncryptionKey and AdminEncryptionKey to the values created above (do not remove the curly braces).
Go back to the QLM Management Console / Manage Keys / Sites / General tab and click the Test button
If you get an error saying that no products were found, click the Upload products to License Server button.
Then click on Test again to confirm that all tests pass.
Manual installation
Configuring the Database
QLM Professional and Enterprise store license keys as well as customer-related information in a database on the License Server.
Use the tools provided by your ISP to create a database called qlm_db. Alternatively, you can execute the sql2005.createdb.sql script located in:
QLM v7: C:\Program Files\Soraco\QuickLicenseMgr\DeployToServer\QlmWebService\Db.
QLM v8+: %Public%\Documents\Quick License Manager\DeployToServer\QlmLicenseServer\Db.
You may need to modify the path of the database in the script above.
Execute the script sql2005.createusers.sql. You may want to modify the password. If you modify the password, update the password in the connectionStrings section of the web.config file.
Execute the script sql2005.createtables.sql to create all the QLM tables
Execute the script sql2005.aspnet.sql
Configuring the web service
At your ISP, create a new virtual directory called QlmLicenseServer and enable ASP.NET 4.0 for this virtual directory.
Create an Application Pool and associate the virtual directory above to the Application Pool.
Ensure the Application Pool is configured for .NET 4.0
Configuring the QLM Management Console
Launch the QLM Management Console
Go to the Manage Keys tab
Click Sites
Click Add to add a new site
Specify a site name
In the Primary site field, enter the URL to the License Server: For example: https://mycompany.net/qlm/qlmlicenseserver/qlmservice.asmx
Set the Database Engine to SQL Server
Go to the Encryption Keys tab, then click New for CommunicationEncryptionKey and AdminEncryptionKey
If you want to configure the QLM Customer Portal to support 3rd party authentication, go to the Authentication tab and set the Client ID of each provider as described in the Authentication Configuration section of this article.
Go to the Deployment tab (formerly Database Connection tab) and enter all the fields on this tab as follows:
DB Server Hostname or IP: Your SQL server name (including the instance name). Example: SQLEXPRESS\MYDBSERVER
Database Name: qlm or any other name you have entered earlier in the process when you created the database
User Name: name of the SQL admin user you specified earlier in the process User Password: password of the SQL admin user you specified earlier in the process
Set the URL to the QLM Customer Portal API
Set the URL to the QLM Customer Portal App
Click Update config files
Click Ok
Upload all the files in the DeployToServer\QlmLicenseServer folder and subfolders to the virtual directory created above (preserve the directory structure).
Go back to the QLM Management Console / Manage Keys / Sites / General tab and click the Test button
If you get an error saying that no products were found, click the Upload products to License Server button.
Then click on Test again to confirm that all tests pass.
Important QLM License Server settings
The following settings located in the License Server's web.config file are critical.
Database connection string (refer to the Configure the Database section in the Help)
Default QLM Engine Version (defaultQlmVersion).
SQL Syntax(sqlsyntax).
Communication Encryption Key (communicationEncryptionKey). The communication encryption key is used to encrypt data transferred between QLM and the QLM Web service. This key is like a password that protects your data. You should use a value that is hard to guess and at least 8 characters long.
Admin Encryption Key (adminEncryptionKey). The admin encryption key is used to encrypt data transferred between QLM and the QLM Web service. This key is like a password that protects your data. You should use a value that is hard to guess and at least 8 characters long.
Security Note:
You need to give the anonymous user (IUSR_XXX, IWAM_XXX) "execute" privileges to the bin folder.
Recommendations
Change the default Communication and Admin Encryption Keys. If you do not, any other QLM customer may be able to view your data.
Configuring the QlmCustomerSite
The QlmCustomerSite must be configured as an IIS Application. It can share the same Application Pool as the QLM License Server. You should deploy the QlmCustomerSite folder alongside the QlmLicenseServer folder. You should never create the QlmCustomerSite folder as a subfolder of the QlmLicenseServer folder.
Important QlmCustomerSite settings
Database connection string (refer to the Configure the Database section in the Help)
Default QLM Engine Version (defaultQlmVersion).
SQL Syntax(sqlsyntax). Select "sql" (without the double quotes).
Communication Encryption Key (communicationEncryptionKey). The communication encryption key is used to encrypt data transferred between QLM and the QLM Web service. This key is like a password that protects your data. You should use a value that is hard to guess and at least 8 characters long.
Admin Encryption Key (adminEncryptionKey). The admin encryption key is used to encrypt data transferred between QLM and the QLM Web service. This key is like a password that protects your data. You should use a value that is hard to guess and at least 8 characters long.
webServiceUrl: this is the URL to your QLM License Server. Example: https://qlm3.net/qlmdemo/qlmLicenseServer/qlmservice.asmx
Configure the QlmPortal
The QlmPortal must be configured as an IIS Application. It can share the same Application Pool as the QLM License Server. You should deploy the QlmPortal folder alongside the QlmLicenseServer folder. You should never create the QlmPortal folder as a subfolder of the QlmLicenseServer folder.
Important QlmPortal settings
Database connection string (refer to the Configure the Database section in the Help)
Default QLM Engine Version (defaultQlmVersion).
SQL Syntax(sqlsyntax). Select "sql" (without the double quotes).
Communication Encryption Key (communicationEncryptionKey). The communication encryption key is used to encrypt data transferred between QLM and the QLM Web service. This key is like a password that protects your data. You should use a value that is hard to guess and at least 8 characters long.
Admin Encryption Key (adminEncryptionKey). The admin encryption key is used to encrypt data transferred between QLM and the QLM Web service. This key is like a password that protects your data. You should use a value that is hard to guess and at least 8 characters long.
webServiceUrl: this is the URL to your QLM License Server. Example: https://qlm3.net/qlmdemo/qlmLicenseServer/qlmservice.asmx
Configure the QlmCustomerPortal
The QlmCustomerPortal consists of 2 services that must be configured as an IIS Application:
qlm-portal-api
qlm-portal-app
Both services can share the same Application Pool as the QLM License Server. You should deploy the QlmCustomerPortal folder alongside the QlmLicenseServer folder. You should never create the QlmCustomerPortal folder as a subfolder of the QlmLicenseServer folder.
QlmCustomerPortal/qlm-portal-app Configuration
Customize the following settings in the web.config file located in the QlmCustomerPortal/qlm-portal-app folder based on your needs:
Database connection string (refer to the Configure the Database section in the Help)
Default QLM Engine Version (defaultQlmVersion).
SQL Syntax(sqlsyntax). Select "sql" (without the double quotes).
Communication Encryption Key (communicationEncryptionKey). The communication encryption key is used to encrypt data transferred between QLM and the QLM Web service. This key is like a password that protects your data. You should use a value that is hard to guess and at least 8 characters long.
Admin Encryption Key (adminEncryptionKey). The admin encryption key is used to encrypt data transferred between QLM and the QLM Web service. This key is like a password that protects your data. You should use a value that is hard to guess and at least 8 characters long.
webServiceUrl: this is the URL to your QLM License Server. Example: https://qlm3.net/qlmdemo/qlmLicenseServer/qlmservice.asmx
AllowedOrigins should be set to your primary domain. For example, if the URL to the qlm-portal-app is: https://qlm3.net/company/qlm-portal-app set AllowedOrigins to https://qlm3.net
QlmCustomerPortal/qlm-portal-api Configuration
To configure 3rd party authentication, you need to acquire Client IDs as described here.
With a text editor, open the QlmCustomerPortal/qlm-portal-app/assets/appsettings.json file:
Set the googleLoginKey field to your Google ClientID
Set the facebookLoginKey field to your Facebook App ID.
Set the azureAuth / clientId field to the Azzure App ClientID
Set the apiEndpoint to the URL of the QLM Customer Portal API site and append /api to the URL. Example: https://qlm3.net/qlmdemo/qlmcustomerportal/qlm-portal-api/api
With a text editor, open the QlmCustomerPortal/qlm-portal-app/index.html file:
Locate the <base href=""> entry
Set the value of href to the path of your qlm-portal-app virtual directory. For example, if the URL to the qlm-portal-app is: https://qlm3.net/company/qlm-portal-app, set href to "/company/qlm-portal-app"
Last updated