Resolving WinCC Unified Runtime V17 HTTP Error 503 in IIS
After upgrading a WinCC Unified PC Runtime from V16 to V17 (or V17 to V18), the integrated web server hosted by Microsoft Internet Information Services (IIS) frequently returns HTTP Error 503 — Service Unavailable on every browser request. The root cause is that the IIS application pools DefaultAppPool and WebRHPool stop as soon as the first request reaches the WinCC Unified web site. The condition is reproducible across clean installs and in-place upgrades, and is officially documented by Siemens Support under entry 109995988 — Fix HTTP error when accessing WinCC Unified PC Runtime. This reference covers the full diagnostic workflow, the four independent remediation paths (certificates, IIS module, SCADA site reconfiguration, and clean reinstallation), and the verification steps that confirm a successful repair.
1. Problem Definition
Symptom cluster reported on V17 and V18 PC Runtime installations:
- Browser request to
https://<host>/orhttps://<host>/Siemens/...returnsHTTP/1.1 503 Service Unavailablewithin milliseconds. - In IIS Manager (inetmgr.exe) the application pools
DefaultAppPoolandWebRHPooldisplay a status of Stopped. - Manually starting the pools from the IIS Manager action pane causes the pool to start but stop again on the next request, often within 1–5 seconds.
- Windows Event Viewer — System log shows IIS-W3SVC-WP event IDs 2268, 2275, or 5189 generated by the worker process terminating unexpectedly.
- Windows Event Viewer — Application log shows a .NET Runtime error (event ID 1026) referencing
Siemens.UserManagement.ServiceLayer.dllor an unhandled access violation inw3wp.exe. - The Simatic Runtime Manager shows the WinCC Unified RT instance in state Running, masking the web-layer failure.
The browser-displayed HTTP 503 has no body content; it is the IIS-generated default response triggered when no healthy worker process can service the request.
2. Root Cause Analysis
HTTP 503 in this scenario is produced by IIS when a worker process crashes during initialization or during request handling. For WinCC Unified Runtime V17 onward, four distinct trigger conditions have been confirmed in the field:
| ID | Trigger | Mechanism | Affected Versions |
|---|---|---|---|
| R1 | Stale UserManagementServiceLayer HTTP module |
An HTTP module registered by a previous WinCC Unified install (V16 or earlier) references assemblies removed or renamed in V17. w3wp.exe fails to load the module and recycles the pool. |
V17 (upgrade from V16), V18 (upgrade from V17) |
| R2 | Mismatched or expired web server certificate | The X.509 certificate bound to the WinCC Unified web site is signed against the previous machine name, host name, or trust chain. The certificate handshake step inside the WinCC Unified bootstrap fails before the runtime can answer. | V17, V18, V19 |
| R3 | Corrupted SCADA IIS site definition | The IIS site created by the WinCC Unified Configuration tool during install has broken bindings, missing physical path, or invalid SSL flags. The site fails to start any application pool that targets it. | V17, V18, V19, V20 |
| R4 | Incomplete installation prerequisites | Microsoft Windows features required by IIS (HTTP Activation, ASP.NET, WebSocket Protocol, IIS Management Console) are missing or disabled by Group Policy, causing the worker process to abort on startup. | V16, V17, V18, V19, V20 |
The official Siemens Support entry 109995988 classifies these as missing Windows functions or permissions; the specific remediation paths differ per trigger.
3. Affected Versions & Environment
| Parameter | Value |
|---|---|
| Software | SIMATIC WinCC Unified PC Runtime V17, V18, V19, V20 |
| Upgrade path of interest | V16 → V17, V17 → V18, V18 → V19 (in-place or side-by-side) |
| Operating systems (confirmed) | Windows 10 LTSC 2019/2021, Windows 11 Pro/Enterprise, Windows Server 2019, Windows Server 2022 |
| IIS version | IIS 10.0 (bundled with Windows 10/11 and Server 2019/2022) |
| .NET Framework | .NET Framework 4.8 (required by WinCC Unified V17+) |
| Required Windows roles/features | Web Server (IIS), ASP.NET 4.8, HTTP Activation, WebSocket Protocol, Windows Authentication, IIS Management Console |
| Application pools affected |
DefaultAppPool, WebRHPool
|
| IIS site name |
WinCC Unified SCADA (default) |
4. Diagnostic Procedure
Perform these checks in order before applying any remediation. The diagnostic order moves from least to most invasive and protects against unnecessary reinstallation.
-
Verify pool state. Open
%windir%\System32\inetsrv\iis.msc. Expand the local server, click Application Pools. Confirm the status ofDefaultAppPoolandWebRHPool. Note any pool that is Stopped. - Capture the recycle reason. Right-click the stopped pool → Advanced Settings → Recycling > Rapid-Fail Protection. Confirm Enabled is True. Right-click the pool → View Applications; the offending application is listed under the SCADA site.
-
Read the Application event log. Run
eventvwr.msc, navigate to Windows Logs > Application. Filter for source.NET RuntimeandApplication Error. Capture the Faulting module name;Siemens.UserManagement.ServiceLayer.dllindicates trigger R1. - Inspect the SCADA site binding. In IIS Manager, expand Sites, right-click WinCC Unified SCADA, choose Edit Bindings. Confirm port and SSL certificate. An empty binding or missing certificate indicates trigger R2.
-
List registered HTTP modules. Open an elevated command prompt and execute:
%windir%\System32\inetsrv\appcmd.exe list module
Look forUserManagementServiceLayerand record whether itspreConditionis empty or set tomanagedHandler. -
Verify Windows features. Run
Get-WindowsFeature -Name Web-Server, Web-Asp-Net45, Web-Http-Activation, Web-WebSockets, Web-Windows-Auth, Web-Mgmt-Consolein PowerShell. AnyRemovedorAvailableentry signals trigger R4. -
Reproduce the failure. Issue
curl -v https://localhost/(or use a browser in private mode) and capture the failing request'sServerheader and timing. A sub-second 503 confirms the worker process crash, not a downstream application error.
5. Resolution Method 1 — Uninstall the Stale UserManagementServiceLayer Module
This is the Siemens-recommended primary fix for trigger R1, originally issued by Siemens Technical Support and validated for V17 and V18 upgrades.
- Open Notepad as Administrator.
- Type the following commands on separate lines (do not let the editor auto-wrap):
@echo off
REM WinCC Unified V17/V18 HTTP 503 remediation
REM Removes the stale HTTP module that survives an upgrade.
%windir%\System32\inetsrv\appcmd.exe uninstall module UserManagementServiceLayer
REM Restart IIS to clear in-memory references
iisreset /restart
REM Bring both pools back online
%windir%\System32\inetsrv\appcmd.exe start apppool /apppool.name:"DefaultAppPool"
%windir%\System32\inetsrv\appcmd.exe start apppool /apppool.name:"WebRHPool"
echo Remediation complete. Re-test the web client.
pause
- Save the file as
WinCCUnified_Fix503.bat(ensure the file is not saved with a hidden.txtextension; verify withdir /xin the containing folder). - Right-click the file → Run as administrator.
- Open an elevated command prompt first and run the batch from the command line so that any
ERROR (message:Unknown module "UserManagementServiceLayer".)responses are visible. If the module name does not exist, the pool stop is caused by a different trigger (proceed to Method 2 or 3). - Verify that
appcmd.exeresponds withSuccessfully uninstalled module "UserManagementServiceLayer".and thatiisresetreports Internet services successfully restarted.
6. Resolution Method 2 — Recreate and Re-import the Web Server Certificate
Trigger R2 is the most common cause when the Runtime PC has been renamed, joined to a domain, or migrated across hardware. The original self-signed certificate no longer matches the host identity and the WinCC Unified bootstrap aborts.
- Close all IIS and WinCC Unified tools.
- Open WinCC Unified Certificate Manager from the Windows Start menu (or
%ProgramFiles%\Siemens\Automation\WinCCUnified\Bin\WinCCUnifiedCertMgr.exe). - Select the entry corresponding to the local PC runtime instance, then click Create new certificate.
- Choose the certificate template WinCC Unified Web Server, set a validity of 5 years (default), and click Create.
- Right-click the new certificate row and select Export to file; save the
.pfxto the desktop (or a known secure location). Supply the password required by the export dialog. - Open SIMATIC Runtime Manager and select the WinCC Unified Runtime project; click Certificate → Import; browse to the exported
.pfxand import. - Open WinCC Unified Configuration, select the project, navigate to Web Server > Certificate; select the freshly imported certificate and click Apply.
- In IIS Manager, edit the bindings of the WinCC Unified SCADA site; assign the new certificate to the
httpsbinding on port 443. Restart theDefaultAppPoolandWebRHPool.
7. Resolution Method 3 — Reconfigure the SCADA Site from IIS
If Methods 1 and 2 do not stop the pool crashes, the SCADA site definition itself is corrupt (trigger R3). The Siemens recommended procedure is to remove the site and let the WinCC Unified Configuration tool rebuild it.
- Stop the Runtime service from SIMATIC Runtime Manager.
- Open IIS Manager as Administrator. Right-click the site WinCC Unified SCADA → Remove. Confirm.
- Delete the physical path directory if the installer does not clean it:
rmdir /S /Q "%ProgramData%\Siemens\WinCCUnified\WebRH" - From the Start menu launch WinCC Unified Configuration. The Configuration tool detects the missing site and offers to recreate it; click Reconfigure site.
- Enter the original port (default 443 for HTTPS, 80 for HTTP), the host name, and the certificate. Click Apply; the tool regenerates the
WebRHfolder, the application pool, and the HTTPS bindings. - Restart the Runtime from SIMATIC Runtime Manager.
- Confirm both pools remain in the Started state for at least 60 seconds before testing the browser.
The detailed reconfiguration flow mirrors the steps documented for the SwacLogin: error during component creation troubleshooting path in the WinCC Unified V16 manual (still valid for V17+ SCADA site regeneration).
8. Resolution Method 4 — Manual Pool Start and Clean Reinstallation
If the pools stop again immediately after each manual start, the worker process is failing on initialization. Use this escalation path.
-
Manual pool start. In IIS Manager, select
DefaultAppPool, click Start in the Actions pane. Repeat forWebRHPool. If they remain running for 60 seconds, proceed to Verification (§9). If they stop again, continue. - Disable Rapid-Fail Protection. Right-click the pool → Advanced Settings → Rapid-Fail Protection → set Enabled to False. This prevents IIS from disabling the pool after consecutive failures and gives time to capture the crash details.
-
Enable Failed Request Tracing. In IIS Manager, select the SCADA site → Failed Request Tracing → Enable. Set the trace directory to
%SystemDrive%\inetpub\logs\FailedReqLogFiles. -
Re-enable Windows features. From PowerShell:
Install-WindowsFeature -Name Web-Server, Web-Asp-Net45, Web-Http-Activation, Web-WebSockets, Web-Windows-Auth, Web-Mgmt-Console -IncludeManagementTools
Restart the server if the command reports Restart needed. -
Uninstall and reinstall Runtime. Use Control Panel > Programs and Features; uninstall SIMATIC WinCC Unified Runtime V17 (or V18). Manually delete residual folders:
%ProgramFiles%\Siemens\Automation\WinCCUnified%ProgramData%\Siemens\WinCCUnified
then reinstall from the original media, making sure to select Web Server and WinCC Unified Certificate Manager as install options. - After the reinstall, re-run Method 1 (the
UserManagementServiceLayerremoval) before transferring any projects.
%ProgramData%\Siemens\WinCCUnified\Projects path.9. Verification
After each remediation method, validate the fix using the following sequence. Stop the validation on the first failure and re-open the diagnostic procedure (§4).
-
Pool stability. In IIS Manager confirm
DefaultAppPoolandWebRHPoolare both Started. Wait 60 seconds and confirm they have not transitioned to Stopped. -
Local HTTP probe. From the Runtime PC, run:
curl -k -v https://localhost/ --max-time 10
A successful response returns HTTP200 OKwith an HTML body referencingSiemens. - Remote HTTP probe. From an engineering station on the same subnet, run the same command substituting the Runtime PC's hostname or IP. The certificate warning is expected for self-signed certificates; the 200 OK confirms the web layer.
-
SwacLogin. In the browser, navigate to
https://<host>/. The WinCC Unified home page (SwacLogin) must load without browser console errors. According to the TIA Portal V20 documentation on the Web Client for RT Unified, a SwacLogin error during or immediately after project download indicates a different condition (RT still downloading) and does not imply HTTP 503. - Pool under load. Open five concurrent browser tabs to different WinCC Unified screens. The pool must remain Started for at least five minutes.
- Event log scan. Confirm no new event IDs 2268, 2275, 5189 (IIS) or 1026 (.NET Runtime) have been logged in the last ten minutes.
10. Troubleshooting Matrix
| Symptom | Likely Trigger | First Fix to Try | Escalation |
|---|---|---|---|
Both pools stop within 1 s of first request, faulting module UserManagementServiceLayer.dll
|
R1 — stale module | Method 1 (appcmd uninstall) | Method 4 (clean reinstall) |
| Pools stop, no .NET error in log, certificate warning persists | R2 — certificate | Method 2 (recreate certificate) | Rebind with SHA-2 certificate from a trusted CA |
| Site is missing or has empty binding in IIS | R3 — corrupt SCADA site | Method 3 (reconfigure) | Method 4 |
| HTTP 500.19 returned instead of 503 | R4 — missing Windows features | Install Web-Server, ASP.NET 4.8, HTTP Activation, WebSocket Protocol | Check Group Policy on locked-down machines |
| HTTP 403.14 returned | Directory browsing disabled or no default document | Reinstall Runtime (resets web.config) |
Verify Default Document module is installed |
| HTTP 503 only after project download completes | SwacLogin transient | Wait 30 s and reload — RT is finalizing project | See V20 Web Client doc |
11. Prevention and Best Practices
- Always uninstall the previous WinCC Unified Runtime before installing a newer version. Side-by-side installations of V16 and V17 Runtime on the same PC frequently leave orphaned
UserManagementServiceLayermodules. - Apply Method 1 (module uninstall) proactively after every major version upgrade, even if the pools appear healthy, to prevent the failure from surfacing mid-production.
- Maintain a single certificate per Runtime host. After any hostname change, domain change, or hardware migration, run Method 2 immediately.
- Lock the IIS Manager: production Runtime PCs should not allow operators to stop pools. Use Feature Delegation in IIS to deny Application Pool > Stop actions to non-administrators.
- Export the Runtime project backup before every TIA Portal upgrade. Use the Backup function inside SIMATIC Runtime Manager, not a file copy.
- Subscribe to Siemens ProductCERT notifications for SIMATIC WinCC Unified to receive early warning of new HTTP 503 variants in future versions.
12. Frequently Asked Questions
Why do both DefaultAppPool and WebRHPool stop in IIS after a V17 upgrade?
The UserManagementServiceLayer HTTP module registered by the previous Runtime install (V16 or V17) loads assemblies that no longer exist in V17/V18, causing w3wp.exe to crash within milliseconds of the first request. Run appcmd.exe uninstall module UserManagementServiceLayer in an elevated command prompt and restart IIS.
Can the HTTP 503 be fixed without reinstalling WinCC Unified?
Yes — in most cases the four remediation methods (module uninstall, certificate recreation, SCADA site reconfigure, manual pool start) resolve the issue. Reinstallation is required only when the underlying IIS worker process crashes immediately on startup and no Windows feature is missing.
Is this issue present in V18, V19, and V20?
Yes. The same trigger conditions (stale modules, mismatched certificates, broken SCADA sites) are observed on V18, V19, and V20. The Siemens Support entry 109995988 covers all four versions.
What is the difference between HTTP 500.19 and HTTP 503 in this scenario?
HTTP 500.19 indicates missing Windows features or invalid web.config configuration and is fixed by enabling IIS sub-features. HTTP 503 indicates that the application pool cannot service requests, typically because of the failed UserManagementServiceLayer module or a certificate handshake failure.
How do I confirm the certificate is the cause and not the module?
Open eventvwr.msc and filter the Application log for source Schannel. Event ID 36888 (fatal alert 42) confirms a certificate handshake failure. If only .NET Runtime event ID 1026 referencing Siemens.UserManagement.ServiceLayer.dll is present, the module is the cause and Method 1 applies.
Does the SwacLogin error documented in the V20 Web Client manual relate to this 503 issue?
No. The V20 Web Client describes a SwacLogin error that occurs during or immediately after a project download, when the Runtime is still finalizing the project on disk. Reloading the page after 30 seconds resolves that error; it is unrelated to HTTP 503 caused by a stopped application pool.