Check app pool settings that commonly cause LIMS issues:
# View app pool configuration
%windir%\system32\inetsrv\appcmd list apppool "YourLIMSAppPool" /config
# Key settings to check:
- processModel.idleTimeout (should be 00:00:00 for LIMS)
- processModel.maxProcesses (usually 1 for LIMS)
- recycling.periodicRestart.memory (set appropriate limit)
- recycling.periodicRestart.requests (often disabled for LIMS)
- processModel.loadUserProfile (true for file access)
Read web.config for clues:
# Find web.config files
dir C:\inetpub\wwwroot\*.config /s
# Check connection strings (redacted for security)
findstr /i "connectionstring\|database\|server=" web.config
# Look for custom errors settings
findstr /i "customerrors\|compilation\|debug=" web.config
# Check authentication mode
findstr /i "authentication\|authorization=" web.config
Verify application structure:
# List all sites and applications
%windir%\system32\inetsrv\appcmd list app
# Check virtual directories
%windir%\system32\inetsrv\appcmd list vdir
# Verify physical paths
%windir%\system32\inetsrv\appcmd list app "Default Web Site/LIMS" /config:physicalPath
Create test connection without LIMS:
1. Create new file: test.udl
2. Double-click to open Data Link Properties
3. Configure same settings as LIMS
4. Test connection to isolate database issues
Check SQL Server error logs:
-- If you have SQL access
EXEC xp_readerrorlog 0, 1, 'login failed', 'LIMS'
EXEC xp_readerrorlog 0, 1, 'timeout', 'LIMS'
EXEC xp_readerrorlog 0, 1, 'deadlock'
Test database network connectivity:
# Test SQL Server port
telnet sql-server-name 1433
# Test name resolution
nslookup sql-server-name
# Check firewall/connectivity
ping sql-server-name
Key counters for LIMS applications:
# Create custom counter set
typeperf -qx | findstr /i "w3wp\|sql\|memory\|processor"
# Monitor specific counters
typeperf "\Process(w3wp)\% Processor Time" "\Process(w3wp)\Working Set" -si 10 -sc 360 -f CSV -o lims_perf.csv
Critical LIMS counters:
\Process(w3wp*)\Working Set
\Process(w3wp*)\Handle Count
\ASP.NET Apps v4.0.30319(*)\Requests/Sec
\ASP.NET Apps v4.0.30319(*)\Request Wait Time
\Web Service(*)\Current Connections
Enable detailed tracing for errors:
1. Enable Failed Request Tracing in IIS Manager
2. Configure tracing rules:
- Status codes: 500-599, 400-499
- Time taken: >30 seconds
- All requests for specific URLs
3. Analyze XML trace files in: %SystemDrive%\inetpub\logs\FailedReqLogFiles
Capture detailed IIS events:
# Start ETW trace
logman create trace "LIMS-IIS" -p "Microsoft-Windows-IIS-Logging" -o C:\temp\iis-trace.etl -ets
# Stop trace after issue reproduction
logman stop "LIMS-IIS" -ets
# Convert to readable format
tracerpt C:\temp\iis-trace.etl -o C:\temp\iis-trace.csv -of CSV
Common LIMS file locations to monitor:
# Check temp directories
dir C:\Windows\Temp\*.* /o-d | head -20
dir %USERPROFILE%\AppData\Local\Temp\*.* /o-d | head -20
# Check upload/processing directories
dir C:\inetpub\wwwroot\uploads\*.* /o-d | head -20
dir C:\inetpub\wwwroot\temp\*.* /o-d | head -20
# Look for large files that might cause timeouts
forfiles /P C:\inetpub\wwwroot /S /M *.* /C "cmd /c if @fsize gtr 104857600 echo @path @fsize"
Check application pool identity permissions:
# Find app pool identity
%windir%\system32\inetsrv\appcmd list apppool "YourLIMSAppPool" /text:processModel.identityType
# Test file access as app pool user
runas /user:IIS_IUSRS cmd
# Then test file operations from that context
Common integration failure points:
Monitor network connections:
# Check active connections
netstat -an | findstr :80
netstat -an | findstr :443
netstat -an | findstr :1433
# Monitor specific process connections
netstat -ano | findstr [w3wp-pid]
Common LIMS certificate problems:
# Check certificate store
certlm.msc
# View certificate details
certutil -store MY
certutil -store Root
# Test SSL connectivity
openssl s_client -connect yourserver:443 -servername yourserver
Look for these patterns in logs:
413
, Request Entity Too Large
, file size errorstimeout
, deadlock
, connection pool exhaustedViewState
, session timeout, authentication redirectsCorrelate errors with usage patterns:
# Group errors by hour to find peak load issues
# Look for patterns related to:
- Daily sample processing batches
- Instrument data imports
- Report generation schedules
- Backup operations
- Maintenance windows
Create monitoring endpoints:
Prevent disk space issues:
# Setup log cleanup job
forfiles /P "C:\inetpub\logs\LogFiles" /S /M *.log /D -30 /C "cmd /c del @path"
# Monitor disk space
wmic logicaldisk get size,freespace,caption
Set up monitoring for:
Quick recovery steps:
1. Check app pool status and restart if needed
2. Verify database connectivity
3. Check recent Windows updates/patches
4. Review last 2 hours of logs for clues
5. Test with minimal user account
6. Check file system permissions
7. Verify certificate validity
Investigation sequence:
1. Check current memory/CPU usage
2. Analyze recent slow requests
3. Test database query performance
4. Check for file system issues
5. Review integration point status
6. Monitor active user sessions
When LIMS data seems corrupted:
1. Stop further data processing
2. Check database consistency
3. Review file upload logs
4. Verify backup integrity
5. Check integration data sources
6. Document timeline of events