alexsusanu@docs:IIS Support Quick Reference: Website vs App Pool Restart $
alexsusanu@docs
:~$ cat IIS Support Quick Reference: Website vs App Pool Restart.md

HomeLIMS → IIS Support Quick Reference: Website vs App Pool Restart

IIS Support Quick Reference: Website vs App Pool Restart

Quick Decision Guide

When to Restart WEBSITE Only

Use for these issues:
- Customer reports one specific website is down/slow
- Why? Issue is isolated to site-level configuration or bindings
- SSL certificate errors or binding issues
- Why? SSL certificates and bindings are configured at the website level
- Configuration file (web.config) changes were made
- Why? Website restart reloads the web.config without affecting the worker process
- Authentication problems on a single site
- Why? Authentication settings are typically in web.config or site-specific IIS settings
- URL redirects not working properly
- Why? URL rewrite rules are website-level configuration
- Other websites on the same server are working fine
- Why? Proves the worker process is healthy - problem is at the website level

⚠️ Impact: Minimal downtime (1-2 seconds), only affects the specific website

When to Restart APPLICATION POOL

Use for these issues:
- Website is completely unresponsive/hanging
- Why? The worker process is stuck/deadlocked - website restart won't unstick it
- High memory usage alerts
- Why? Memory is consumed at the worker process level - only killing the process frees it
- Multiple websites in same pool having issues
- Why? If multiple sites are affected, the problem is at the worker process level
- "Out of Memory" errors
- Why? The worker process has exhausted its memory allocation - needs process restart to free memory
- Application crashes or frequent 500 errors
- Why? Process instability usually indicates worker process problems that website restart can't fix
- After deploying new code/updates
- Why? New assemblies/DLLs need the worker process to restart to load them properly
- Database connection issues
- Why? Connection pooling happens at the worker process level
- Performance is very slow across the application
- Why? Usually indicates memory leaks, resource exhaustion, or thread pool issues in the worker process

⚠️ Impact: Brief downtime (5-10 seconds), affects ALL websites in that pool

Support Troubleshooting Steps

Step 1: Identify the Problem Scope

Ask yourself:
- Is it affecting one website or multiple?
- Are there memory/performance alerts?
- What error messages are users seeing?

Step 2: Check Current Status

In IIS Manager, look for:
- Website status (Started/Stopped)
- Application Pool status (Started/Stopped)
- Any error indicators

Step 3: Choose Action

Single website issue + Others working fine
→ Try WEBSITE RESTART first

Application hanging/crashing + Memory issues
→ Go straight to APP POOL RESTART

Configuration change just made
→ WEBSITE RESTART

Code deployment just happened
→ APP POOL RESTART

Special Case: 500 Internal Server Errors

Don't automatically restart for 500 errors! First check:

Check Event Logs/Error Details

  • Look at Windows Event Viewer → Application logs
  • Check IIS logs for specific error details
  • Look for detailed error message in browser (if enabled)

Common 500 Error Causes (No Restart Needed):

  • Code bugs/exceptions → Dev team needs to fix code
  • Missing files/assemblies → Deploy missing files
  • Web.config syntax errors → Fix configuration
  • Permissions issues → Fix file/folder permissions
  • Database connection string wrong → Update connection string

When 500 Errors DO Need App Pool Restart:

  • OutOfMemory exceptions in the logs
  • Why app pool restart? The worker process (w3wp.exe) has exhausted its memory allocation. A website restart doesn't kill the process, so the memory stays consumed. Only terminating the worker process frees up that memory.
  • Note: This is a temporary fix - if there's a memory leak, it'll happen again
  • Application hanging after the 500 errors started
  • Thread exhaustion errors
  • Process crash immediately after 500 error

Rule: Fix the root cause, don't just restart and hope it goes away!

Common Support Scenarios

Customer Report Action Why This Action
"Website won't load" Website restart Why website? Could be binding/config issue specific to that site. Why not app pool? Other sites might be working fine - don't disrupt them unnecessarily
"Getting 500 errors" Check logs first - Don't restart automatically Why check first? 500 errors are usually code/config problems that restarting won't fix. You need to know what's actually broken
"Application completely frozen/hanging" App pool restart Why app pool? The worker process is stuck/deadlocked. Why not website? Website restart won't unstick a frozen process - you need to kill and restart the process
"Very slow performance" App pool restart Why app pool? Usually caused by memory leaks, too many objects in memory, or resource exhaustion in the worker process. Why not website? Website restart doesn't free up process memory
"SSL certificate error" Website restart Why website? SSL bindings are website-level configuration. Why not app pool? The worker process isn't the problem - it's the site's certificate binding
"Login not working" Website restart first, then app pool if needed Why website first? Could be authentication config in web.config. Why escalate to app pool? If it's session state corruption or authentication module issues in memory
"Database connection error" App pool restart Why app pool? Connection pooling happens at the process level. Why not website? Database connections are managed by the worker process, not individual sites

How to Perform Restarts

Website Restart

  1. Open IIS Manager
  2. Find the website in left panel
  3. Right-click → Stop
  4. Wait 2 seconds
  5. Right-click → Start

Application Pool Restart

  1. Open IIS Manager
  2. Click Application Pools in left panel
  3. Find the correct app pool
  4. Right-click → Recycle
  5. Wait for confirmation

Escalation Guidelines

Try Website Restart First When:

  • Problem seems website-specific
  • Why? If only one site is affected, the issue is likely at the site configuration level, not the worker process
  • Low risk tolerance for downtime
  • Why? Website restart affects only that site (1-2 seconds), app pool restart affects all sites in the pool (5-10 seconds)
  • Other sites are working normally
  • Why? Proves the worker process is healthy - problem is isolated to one site's configuration

Skip to App Pool Restart When:

  • Clear memory/performance issues
  • Why? Memory problems exist at the worker process level - website restart won't free memory
  • Application is completely hung
  • Why? The worker process is deadlocked/frozen - need to kill the process entirely
  • Multiple error types occurring
  • Why? Indicates worker process instability - multiple symptoms point to process-level problems
  • Recent code deployment
  • Why? New code assemblies need the process to restart to load properly - website restart won't reload assemblies

Escalate to Next Level When:

  • App pool restart doesn't fix the issue
  • Problem keeps recurring quickly
  • Server-wide performance issues
  • Multiple app pools affected

Documentation Template

Always document:
- Time of restart
- Type of restart performed (website/app pool)
- Reason for restart
- Result (fixed/not fixed)
- Any error messages seen

Example:

2025-08-04 14:30 - Restarted "CustomerPortal" app pool due to high memory usage (2.1GB). Issue resolved, site responding normally.
Last updated: 2025-08-26 20:00 UTC