Contents
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.
| Component | Access Path | Purpose |
|---|---|---|
| Database Setup | SQL Server Management Studio | Restore database, create login |
| Desktop Application | run.bat → Option 1 | Install web application with IIS |
| Mobile Application | run.bat → Option 1 | Install mobile web app (optional) |
| Configuration | global.asa / Web.config | Database connection, SSL, email |
Ensure you have administrative rights on the server and SQL Server credentials available before beginning installation.
| Requirement | Minimum Version | Notes |
|---|---|---|
| Windows Server | 2016 or newer | Windows 10/11 supported for development |
| SQL Server | 2017 Standard/Express or newer | SQL Server 2019 recommended |
| SQL Server Management Studio | Latest version | Required for database setup |
| Web Browser | Firefox or Chrome | IE/Edge Legacy not supported for testing |
| .NET Framework | 4.7.2 or newer | Required by both Desktop/Mobile |
Automatically Installed by Installer:
Contact CISS if you encounter any issues during installation.
| Step | Component | Time Estimate |
|---|---|---|
| 1 | Database Setup | 15-30 minutes |
| 2 | Desktop Application | 10-15 minutes |
| 3 | Mobile Application | 5-10 minutes |
| 4 | Post-Installation | 10-20 minutes |
The database can be set up manually using SQL Server Management Studio or via PowerShell automation scripts.
1. Extract Database Backup
Extract the database backup file (.bak) from the provided .zip archive.
2. Enable Mixed Mode Authentication
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 = OFF4. Restore Database
.bak file{prefix}_clientName2015| Environment | Prefix | Example |
|---|---|---|
| Production | live | live_acmecorp2015 |
| Development | test | test_acmecorp2015 |
| Demo | demo | demo_acmecorp2015 |
5. Link Database User
Execute on the restored database:
USE [live_clientName2015]
EXEC sp_change_users_login 'Auto_Fix', 'YourUserName'For automated SQL Server Express installation:
# Run the SQL Express Installer script
& "SQL Express Installer.ps1"This script performs:
C:\InventoryPro\Backup, Data, Log, TempDB)| Directory | Purpose |
|---|---|
C:\InventoryPro\Backup | SQL Server backup files |
C:\InventoryPro\Data | Database data files (.mdf) |
C:\InventoryPro\Log | Database log files (.ldf) |
C:\InventoryPro\TempDB | TempDB files |
If running SQL Server on a dedicated server:
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.
.zip filerun.bat
The installer menu options:
| Option | Action | When to Use |
|---|---|---|
| 1 | Install / Reinstall | Initial installation or full reinstall |
| 2 | Update | Apply updates without reconfiguring IIS |
| 3 | Validate | Check configuration and diagnose issues |
| 4 | Enable IIS Settings | Reconfigure IIS settings only |
| 5 | Enable IIS Settings (SSO) | Configure for Smart Card/SSO |
| 6 | Enable Windows Features | Install required Windows features only |
| 7 | Install Tools | Install SQL drivers and IIS modules only |
| 9 | Uninstall | Remove Inventory Pro installation |
Select Option 1 for initial installation (~10 minutes), then review the validation results for any errors.
The installer automatically enables these IIS features:
| Feature | Description |
|---|---|
| IIS-WebServer | Core web server |
| IIS-ASP | Classic ASP support |
| IIS-ASPNET45 | ASP.NET 4.5 support |
| IIS-ISAPIFilter | ISAPI filter support |
| IIS-ISAPIExtensions | ISAPI extensions |
| IIS-NetFxExtensibility45 | .NET extensibility |
| IIS-StaticContent | Static file serving |
| IIS-HttpCompressionDynamic | Dynamic compression |
| IIS-HttpCompressionStatic | Static compression |
| IIS-DefaultDocument | Default document handling |
| IIS-HttpLogging | HTTP request logging |
| IIS-RequestFiltering | Request filtering security |
| IIS-ManagementScriptingTools | PowerShell management |
The installer downloads and installs these components automatically:
| Component | Version | Purpose |
|---|---|---|
| VC++ Redistributable x86 | 2015-2022 | Runtime for MSOLEDBSQL |
| VC++ Redistributable x64 | 2015-2022 | Runtime for MSOLEDBSQL |
| MSOLEDBSQL | 19.x | SQL Server OLE DB driver |
| URL Rewrite | 2.x | IIS URL rewriting module |
| IIS Compression | Latest | Enhanced compression |
To run two instances (e.g., production and test) on the same server:
secondary.xml in the C:\InventoryPro folderinstallFolder, domainName, and databaseNameAfter installation, the validator checks:
The Mobile application is installed after the Desktop application and shares the same IIS site.
run.bat and select Option 1The installer:
C:\InventoryPro\Desktop\Mobile subfoldersiteName_Mobile)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>| Setting | Type | Description | Default |
|---|---|---|---|
RequireSSL | Boolean | Force HTTPS for all requests | true |
PageSize | Integer | Records per page | 25 |
BarcodeReaders | String | Camera barcode types (comma-separated) | code_128_reader,upc_reader |
ItemSelectLimit | Integer | Maximum search results | 50 |
logoutAfterScannerIssue | Boolean | Auto-logout for kiosk mode | false |
virtualDirectory | String | Path to framework folder | Auto-detected |
Configure BarcodeReaders with any combination:
| Reader | Barcode Type |
|---|---|
code_128_reader | Code 128 (default) |
upc_reader | UPC-A (default) |
ean_reader | EAN-13 |
ean_8_reader | EAN-8 |
code_39_reader | Code 39 |
code_39_vin_reader | Code 39 VIN |
codabar_reader | Codabar |
upc_e_reader | UPC-E |
i2of5_reader | Interleaved 2 of 5 |
2of5_reader | Standard 2 of 5 |
code_93_reader | Code 93 |
code_32_reader | Code 32 |
| Setting | Type | Description |
|---|---|---|
LogonTimeout | Integer | Session timeout (minutes) |
LogonAttempts | Integer | Max failed login attempts |
LogonFailedLock | Boolean | Enable account lockout |
LogonFailedLockThreshold | Integer | Failures before lockout |
LogonFailedLockTime | Integer | Lockout duration (minutes) |
PasswordMinLength | Integer | Minimum password length |
ActiveDirectoryLogon | Boolean | Enable AD authentication |
SmartCardLogon | Boolean | Enable smart card |
The primary configuration file is global.asa in the application root. Settings use the format:
Application("OptionName") = ValueApplication("ConnectionString") = "Provider=MSOLEDBSQL;Data Source=ServerName\Instance;Initial Catalog=DatabaseName;User Id=UserName;Password=Password;"Upgrading? Replace
sqloledborsqloledb.1withmsoledbsqlin your connection string.
| Option | Type | Description | Example |
|---|---|---|---|
Name | String | Application title, used in emails | "Inventory Pro" |
hostUrl | String | Primary URL for email links | "inventorypro.example.com" |
RequireSSL | Boolean | Force HTTPS | True |
SpecialFolder | String | Document engine temp folder | "C:\InventoryPro\Desktop\Framework\Export" |
customerUrl | String | Custom support link | "support.example.com" |
| Option | Type | Description | Default |
|---|---|---|---|
SessionTimeout | Integer | Session timeout (minutes) | 30 |
LoginTimeout | Integer | Login page timeout | 30 |
LoginAttempts | Integer | Max failed logins before lockout | 5 |
LoginFailedLock | Boolean | Enable account lockout | True |
LoginFailedLockThreshold | Integer | Failures before lockout | 5 |
LoginFailedLockTime | Integer | Lockout duration (minutes) | 15 |
PasswordMinLength | Integer | Minimum password length | 8 |
PasswordMaxAge | Integer | Password expiration (days) | 90 |
PasswordMaxAgeResetPeriod | Integer | Grace period for expired passwords | 7 |
PasswordForceComplexity | Boolean | Require complex passwords | True |
PasswordMinComplexity | Integer | Complexity level (1-4) | 3 |
PasswordHashLogging | Boolean | Log password hash changes | True |
PasswordHashLogNum | Integer | Hash history to retain | 5 |
PasswordForceReset | Boolean | Force reset on first login | False |
PasswordAllowAdminReset | Boolean | Allow admins to reset passwords | True |
PasswordAllowSuperAdminReset | Boolean | Allow super admins to reset | True |
| Option | Type | Description |
|---|---|---|
ActiveDirectoryLogon | Boolean | Enable AD authentication |
ActiveDirectoryForce | Boolean | Require AD (disable local auth) |
SmartCardLogon | Boolean | Enable smart card authentication |
SmartCardForce | Boolean | Require smart card |
CACCardLogon | Boolean | Enable CAC card authentication |
| Option | Type | Description |
|---|---|---|
SendEmail | Boolean | Enable email notifications |
mailFrom | String | Sender email address |
mailServerIP | String | SMTP server address |
mailServerPort | Integer | SMTP port (25, 587, etc.) |
mailSSL | Boolean | Use SSL/TLS for SMTP |
mailServerUserName | String | SMTP authentication username |
mailServerPassword | String | SMTP authentication password |
TestEmail | String | Redirect all emails (for testing) |
| Option | Type | Description | Default |
|---|---|---|---|
PAGE_SIZE | Integer | Records per page | 25 |
LIST_SIZE | Integer | Dropdown list size | 10 |
currency_glyph | String | Currency symbol | "$" |
CommandTimeout | Integer | SQL command timeout (seconds) | 30 |
ConnectionTimeout | Integer | SQL connection timeout (seconds) | 30 |
| Option | Type | Description |
|---|---|---|
Stop | Boolean | Maintenance mode (blocks all access) |
Test | Boolean | Test mode (enables debug features) |
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>We recommend using Let’s Encrypt for SSL if your organization doesn’t have an existing certificate framework.
RequireSSL = True in global.asaAfter installation, verify the application:
https://localhost/InventoryPro (or your configured URL)| Task | Location | Priority |
|---|---|---|
| Change admin password | User profile | Critical |
| Configure warehouses | Inventory → Warehouses | High |
| Set up locations | Inventory → Locations | High |
| Add users | System → Users | High |
| Configure security groups | System → Groups | High |
| Set Admin Options | System → Admin Options | Medium |
| Configure email | global.asa | Medium |
| Set up backups | SQL Server | High |
| Task | Documentation |
|---|---|
| Active Directory/SSO | SSO Configuration |
| User Management | User Management |
| Security Groups | Group Management |
| Admin Options | Admin Options |
| Email Alerts | Alerts & Notifications |
For development and staging environments, PowerShell deployment scripts automate the build and deploy process.
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"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"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"“Provider not found” or connection errors:
msoledbsql or msoledbsql19 providerDLLs not registered:
Site won’t start (port conflict):
Document engine crashes:
iisresetSpecialFolder path exists and has write permissionsSession timeout issues:
SessionTimeout in global.asaMobile app won’t connect:
Web.config connection string is correctRun 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 | Location | Contents |
|---|---|---|
| Install Log | install_log.txt (install folder) | Installation steps and errors |
| IIS Logs | C:\inetpub\logs\LogFiles | HTTP requests and errors |
| Application Log | Windows Event Viewer | ASP/ASP.NET errors |
| SQL Error Log | SQL Server Logs folder | Database errors |
For installation assistance, contact CISS with:
install_log.txt from the installation folderOn this page