InventoryOnline

Installation

Installation of Inventory Pro involves setting up the SQL Server database, deploying the Desktop web application, and optionally configuring the Mobile application. The PowerShell installer automates most configuration tasks including Windows Features, IIS setup, and required drivers.

ComponentAccess PathPurpose
Database SetupSQL Server Management StudioRestore database, create login
Desktop Applicationrun.bat → Option 1Install web application with IIS
Mobile Applicationrun.bat → Option 1Install mobile web app (optional)
Configurationglobal.asa / Web.configDatabase connection, SSL, email

Prerequisites

Ensure you have administrative rights on the server and SQL Server credentials available before beginning installation.

RequirementMinimum VersionNotes
Windows Server2016 or newerWindows 10/11 supported for development
SQL Server2017 Standard/Express or newerSQL Server 2019 recommended
SQL Server Management StudioLatest versionRequired for database setup
Web BrowserFirefox or ChromeIE/Edge Legacy not supported for testing
.NET Framework4.7.2 or newerRequired by both Desktop/Mobile

Automatically Installed by Installer:

  • IIS with required features (ASP, ASP.NET 4.5, ISAPI Extensions/Filters)
  • URL Rewrite Module 2
  • Microsoft OLE DB Driver for SQL Server (MSOLEDBSQL 19)
  • Visual C++ Redistributable 2015-2022 (x86 and x64)
  • IIS Compression Module

Contact CISS if you encounter any issues during installation.

Installation Overview

StepComponentTime Estimate
1Database Setup15-30 minutes
2Desktop Application10-15 minutes
3Mobile Application5-10 minutes
4Post-Installation10-20 minutes

Database Setup

The database can be set up manually using SQL Server Management Studio or via PowerShell automation scripts.

Manual Setup (SSMS)

1. Extract Database Backup

Extract the database backup file (.bak) from the provided .zip archive.

2. Enable Mixed Mode Authentication

  1. Open SQL Server Management Studio and connect to your instance
  2. Right-click the server name → PropertiesSecurity
  3. Select SQL Server and Windows Authentication mode
  4. Click OK, then right-click the server and select Restart

3. Create SQL Login

Open a new query window and execute:

CREATE LOGIN [YourUserName]
WITH PASSWORD = N'YourSecurePassword',
DEFAULT_DATABASE = [master],
CHECK_EXPIRATION = OFF,
CHECK_POLICY = OFF

4. Restore Database

  1. Right-click DatabasesRestore Database
  2. Select Device and browse to your .bak file
  3. Name the database using the convention: {prefix}_clientName2015
EnvironmentPrefixExample
Productionlivelive_acmecorp2015
Developmenttesttest_acmecorp2015
Demodemodemo_acmecorp2015

5. Link Database User

Execute on the restored database:

USE [live_clientName2015]
EXEC sp_change_users_login 'Auto_Fix', 'YourUserName'

Automated Setup (PowerShell)

For automated SQL Server Express installation:

# Run the SQL Express Installer script
& "SQL Express Installer.ps1"

This script performs:

  1. Downloads SQL Server 2019 Express installer
  2. Creates directory structure (C:\InventoryPro\Backup, Data, Log, TempDB)
  3. Runs silent installation with configuration file
  4. Optionally installs SQL Server Management Studio
  5. Prompts for database restore

Database Directories

DirectoryPurpose
C:\InventoryPro\BackupSQL Server backup files
C:\InventoryPro\DataDatabase data files (.mdf)
C:\InventoryPro\LogDatabase log files (.ldf)
C:\InventoryPro\TempDBTempDB files

Remote Database Server

If running SQL Server on a dedicated server:

  • Open firewall port 1433 (or your custom port)
  • Consider using a non-default port for security
  • Ensure the application server can reach the database server

Desktop Application

Installer Configuration (install.xml)

Before running the installer, configure install.xml in the installation package:

<?xml version="1.0" encoding="utf-8"?>
<Configuration>
  <!-- Root location for all Inventory Pro files -->
  <root>C:\InventoryPro</root>

  <!-- Install folder name (creates C:\InventoryPro\Desktop) -->
  <installFolder>Desktop</installFolder>

  <!-- Primary domain name (use localhost if not using DNS) -->
  <domainName>inventorypro.local</domainName>

  <!-- IIS Site name (defaults to domainName if blank) -->
  <siteName></siteName>

  <!-- Require SSL for all traffic -->
  <requireSSL>true</requireSSL>

  <!-- Enable Active Directory authentication -->
  <enableActiveDirectory>false</enableActiveDirectory>

  <!-- Enable email notifications -->
  <enableEmail>false</enableEmail>

  <!-- Database server (servername:port or localhost) -->
  <databaseServer>localhost</databaseServer>

  <!-- Database name -->
  <databaseName>live_clientName2015</databaseName>
</Configuration>

After installation, this file is stored at C:\InventoryPro\install.xml for future upgrades.

Running the Installer

  1. Extract the installation package from the provided .zip file
  2. Open the extracted folder and double-click run.bat
  3. Select from the installer menu

Inventory Pro installer main menu showing configuration details and numbered options for installation, update, validation, and IIS settings

The installer menu options:

OptionActionWhen to Use
1Install / ReinstallInitial installation or full reinstall
2UpdateApply updates without reconfiguring IIS
3ValidateCheck configuration and diagnose issues
4Enable IIS SettingsReconfigure IIS settings only
5Enable IIS Settings (SSO)Configure for Smart Card/SSO
6Enable Windows FeaturesInstall required Windows features only
7Install ToolsInstall SQL drivers and IIS modules only
9UninstallRemove Inventory Pro installation

Select Option 1 for initial installation (~10 minutes), then review the validation results for any errors.

Windows Features Installed

The installer automatically enables these IIS features:

FeatureDescription
IIS-WebServerCore web server
IIS-ASPClassic ASP support
IIS-ASPNET45ASP.NET 4.5 support
IIS-ISAPIFilterISAPI filter support
IIS-ISAPIExtensionsISAPI extensions
IIS-NetFxExtensibility45.NET extensibility
IIS-StaticContentStatic file serving
IIS-HttpCompressionDynamicDynamic compression
IIS-HttpCompressionStaticStatic compression
IIS-DefaultDocumentDefault document handling
IIS-HttpLoggingHTTP request logging
IIS-RequestFilteringRequest filtering security
IIS-ManagementScriptingToolsPowerShell management

Tools Installed

The installer downloads and installs these components automatically:

ComponentVersionPurpose
VC++ Redistributable x862015-2022Runtime for MSOLEDBSQL
VC++ Redistributable x642015-2022Runtime for MSOLEDBSQL
MSOLEDBSQL19.xSQL Server OLE DB driver
URL Rewrite2.xIIS URL rewriting module
IIS CompressionLatestEnhanced compression

Dual Instance Support

To run two instances (e.g., production and test) on the same server:

  1. Create secondary.xml in the C:\InventoryPro folder
  2. Configure with different installFolder, domainName, and databaseName
  3. The installer will process both configurations automatically

Installation Validation

After installation, the validator checks:

  • Directory paths exist and are accessible
  • DLL files are registered correctly
  • COM+ objects (Misc_Reports_d) are configured
  • IIS site and application pools are started
  • ADODB and report objects load correctly

Mobile Application

The Mobile application is installed after the Desktop application and shares the same IIS site.

Install

  1. Extract the Mobile installation package
  2. Run run.bat and select Option 1
  3. Installation takes approximately 2-5 minutes

The installer:

  • Creates C:\InventoryPro\Desktop\Mobile subfolder
  • Configures a separate IIS application pool (siteName_Mobile)
  • Sets up the ASP.NET 4.7.2 application

Mobile Configuration (Web.config)

Configure the database connection in Web.config:

<connectionStrings>
  <add name="dbConnectionString"
       connectionString="server=ServerName\Instance;database=DatabaseName;
                        connection timeout=30;uid=UserName;password=Password;
                        pooling=true"
       providerName="System.Data.SqlClient" />
</connectionStrings>

<appSettings>
  <add key="RequireSSL" value="true" />
  <add key="PageSize" value="25" />
  <add key="BarcodeReaders" value="code_128_reader,upc_reader" />
</appSettings>

Mobile App Settings

SettingTypeDescriptionDefault
RequireSSLBooleanForce HTTPS for all requeststrue
PageSizeIntegerRecords per page25
BarcodeReadersStringCamera barcode types (comma-separated)code_128_reader,upc_reader
ItemSelectLimitIntegerMaximum search results50
logoutAfterScannerIssueBooleanAuto-logout for kiosk modefalse
virtualDirectoryStringPath to framework folderAuto-detected

Supported Barcode Readers

Configure BarcodeReaders with any combination:

ReaderBarcode Type
code_128_readerCode 128 (default)
upc_readerUPC-A (default)
ean_readerEAN-13
ean_8_readerEAN-8
code_39_readerCode 39
code_39_vin_readerCode 39 VIN
codabar_readerCodabar
upc_e_readerUPC-E
i2of5_readerInterleaved 2 of 5
2of5_readerStandard 2 of 5
code_93_readerCode 93
code_32_readerCode 32

Mobile Security Settings

SettingTypeDescription
LogonTimeoutIntegerSession timeout (minutes)
LogonAttemptsIntegerMax failed login attempts
LogonFailedLockBooleanEnable account lockout
LogonFailedLockThresholdIntegerFailures before lockout
LogonFailedLockTimeIntegerLockout duration (minutes)
PasswordMinLengthIntegerMinimum password length
ActiveDirectoryLogonBooleanEnable AD authentication
SmartCardLogonBooleanEnable smart card

Configuration

Desktop Configuration (global.asa)

The primary configuration file is global.asa in the application root. Settings use the format:

Application("OptionName") = Value

Connection String

Application("ConnectionString") = "Provider=MSOLEDBSQL;Data Source=ServerName\Instance;Initial Catalog=DatabaseName;User Id=UserName;Password=Password;"

Upgrading? Replace sqloledb or sqloledb.1 with msoledbsql in your connection string.

Core Settings

OptionTypeDescriptionExample
NameStringApplication title, used in emails"Inventory Pro"
hostUrlStringPrimary URL for email links"inventorypro.example.com"
RequireSSLBooleanForce HTTPSTrue
SpecialFolderStringDocument engine temp folder"C:\InventoryPro\Desktop\Framework\Export"
customerUrlStringCustom support link"support.example.com"

Security Settings

OptionTypeDescriptionDefault
SessionTimeoutIntegerSession timeout (minutes)30
LoginTimeoutIntegerLogin page timeout30
LoginAttemptsIntegerMax failed logins before lockout5
LoginFailedLockBooleanEnable account lockoutTrue
LoginFailedLockThresholdIntegerFailures before lockout5
LoginFailedLockTimeIntegerLockout duration (minutes)15
PasswordMinLengthIntegerMinimum password length8
PasswordMaxAgeIntegerPassword expiration (days)90
PasswordMaxAgeResetPeriodIntegerGrace period for expired passwords7
PasswordForceComplexityBooleanRequire complex passwordsTrue
PasswordMinComplexityIntegerComplexity level (1-4)3
PasswordHashLoggingBooleanLog password hash changesTrue
PasswordHashLogNumIntegerHash history to retain5
PasswordForceResetBooleanForce reset on first loginFalse
PasswordAllowAdminResetBooleanAllow admins to reset passwordsTrue
PasswordAllowSuperAdminResetBooleanAllow super admins to resetTrue

Authentication Options

OptionTypeDescription
ActiveDirectoryLogonBooleanEnable AD authentication
ActiveDirectoryForceBooleanRequire AD (disable local auth)
SmartCardLogonBooleanEnable smart card authentication
SmartCardForceBooleanRequire smart card
CACCardLogonBooleanEnable CAC card authentication

Email Settings

OptionTypeDescription
SendEmailBooleanEnable email notifications
mailFromStringSender email address
mailServerIPStringSMTP server address
mailServerPortIntegerSMTP port (25, 587, etc.)
mailSSLBooleanUse SSL/TLS for SMTP
mailServerUserNameStringSMTP authentication username
mailServerPasswordStringSMTP authentication password
TestEmailStringRedirect all emails (for testing)

Display Settings

OptionTypeDescriptionDefault
PAGE_SIZEIntegerRecords per page25
LIST_SIZEIntegerDropdown list size10
currency_glyphStringCurrency symbol"$"
CommandTimeoutIntegerSQL command timeout (seconds)30
ConnectionTimeoutIntegerSQL connection timeout (seconds)30

System Flags

OptionTypeDescription
StopBooleanMaintenance mode (blocks all access)
TestBooleanTest mode (enables debug features)

Custom Login Banner

Add a custom banner to the login screen by creating CustomBanner.html in the Framework folder:

<div style="padding: 10px; background: #f0f0f0; border-radius: 4px;">
  <h4>Welcome to Inventory Pro</h4>
  <p>For support, contact helpdesk@example.com</p>
  <p><small>By logging in, you agree to our terms of use.</small></p>
</div>

Post-Installation

SSL Certificate Setup

We recommend using Let’s Encrypt for SSL if your organization doesn’t have an existing certificate framework.

  1. Configure DNS to point to your server
  2. Install certificate in IIS
  3. Add HTTPS binding to the site
  4. Set RequireSSL = True in global.asa

Verify Installation

After installation, verify the application:

  1. Open https://localhost/InventoryPro (or your configured URL)
  2. Log in with default admin credentials (provided separately)
  3. Change the admin password immediately
  4. Navigate to System → Admin Options to configure your environment

Initial Configuration Checklist

TaskLocationPriority
Change admin passwordUser profileCritical
Configure warehousesInventory → WarehousesHigh
Set up locationsInventory → LocationsHigh
Add usersSystem → UsersHigh
Configure security groupsSystem → GroupsHigh
Set Admin OptionsSystem → Admin OptionsMedium
Configure emailglobal.asaMedium
Set up backupsSQL ServerHigh

Additional Configuration

TaskDocumentation
Active Directory/SSOSSO Configuration
User ManagementUser Management
Security GroupsGroup Management
Admin OptionsAdmin Options
Email AlertsAlerts & Notifications

Deployment Scripts

For development and staging environments, PowerShell deployment scripts automate the build and deploy process.

Deploy-Desktop.ps1

Deploys Desktop application to dev or live servers:

# Deploy to dev server
Deploy-Desktop.ps1 -repository "InventoryPro" -Context "dev"

# Deploy to live server with validation
Deploy-Desktop.ps1 -repository "InventoryPro" -Context "live"

Deploy-Mobile.ps1

Deploys Mobile application with automatic build detection:

# Deploy to dev server
Deploy-Mobile.ps1 -client "InventoryPro" -Context "dev"

# Deploy to live server
Deploy-Mobile.ps1 -client "InventoryPro" -Context "live"

Deploy-Database.ps1

Builds and deploys database schema changes:

# Deploy to local development
Deploy-Database.ps1 -ClientName "InventoryPro" -Target "localhost" -TargetDatabase "live_ipol2015"

# Deploy to dev server
Deploy-Database.ps1 -ClientName "InventoryPro" -Target "10.1.0.173" -TargetDatabase "test_za2015"

Troubleshooting

Common Issues

“Provider not found” or connection errors:

  • Verify MSOLEDBSQL driver is installed (Installer Option 7)
  • Update connection string to use msoledbsql or msoledbsql19 provider
  • Check SQL Server is running and accessible

DLLs not registered:

  • Run installer Option 1 to re-register all DLLs
  • Check that Application Pool is set to Enable 32-Bit Applications = True
  • Verify COM+ application “Misc_Reports_d” exists in Component Services

Site won’t start (port conflict):

  • Check if another site is using port 80/443
  • Verify no other application is using the configured hostname
  • Check Windows Firewall settings

Document engine crashes:

  • Reset IIS: iisreset
  • Verify SpecialFolder path exists and has write permissions
  • Check COM+ application is properly configured

Session timeout issues:

  • Verify SessionTimeout in global.asa
  • Check IIS Application Pool idle timeout settings
  • Ensure cookie settings allow session persistence

Mobile app won’t connect:

  • Verify Web.config connection string is correct
  • Check Mobile application pool is running
  • Ensure SSL certificate covers Mobile subdirectory

Validation Commands

Run from PowerShell to diagnose issues:

# Check IIS site status
Get-Website | Where-Object { $_.Name -like "*InventoryPro*" }

# Check application pool status
Get-WebAppPoolState -Name "siteName_Desktop"

# Test database connectivity
Invoke-Sqlcmd -Query "SELECT @@VERSION" -ServerInstance "localhost"

# Test COM object registration (run in 32-bit PowerShell)
# Launch: C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe
$conn = New-Object -ComObject ADODB.Connection
$report = New-Object -ComObject Misc_Reports_d.rpt2_5x1

Log Files

LogLocationContents
Install Loginstall_log.txt (install folder)Installation steps and errors
IIS LogsC:\inetpub\logs\LogFilesHTTP requests and errors
Application LogWindows Event ViewerASP/ASP.NET errors
SQL Error LogSQL Server Logs folderDatabase errors

Support

For installation assistance, contact CISS with:

  • install_log.txt from the installation folder
  • Screenshots of any error messages
  • Server OS version and SQL Server version
  • IIS configuration export if applicable

On this page