Problem Summary
WinCC Unified PC Runtime (also referenced as WinCC Unified SCADA RT) is hosted by Microsoft Internet Information Services (IIS) on the engineering or operator station. When a user navigates to the locally published Runtime URL — typically https://localhost or https://<hostname> — the IIS front end accepts the TLS session and returns the start page, but clicking the WinCC Unified SCADA RT tile or navigating directly to the Runtime application path produces the response:
HTTP Error 500.1013 — Internal Server Error
The page cannot be displayed because an internal server error has occurred.
HRESULT: 0x6d
Module: iisnode
Substatus 1013 is reserved by the IIS pipeline for a Node.js hosting fault surfaced by the iisnode module: the WinCC Unified runtime is a Node.js application packaged as app.js and loaded by iisnode under a dedicated Application Pool. A 500.1013 response indicates the Node.js host process failed to bootstrap, the worker failed to register with IIS, or the Web.config path mappings do not match the installed WinCC Unified directory layout. The most common field cause on a Windows 10 / Windows 11 operator PC is an incomplete IIS feature installation — only a partial IIS role set is present, and the iisnode module (which depends on ISAPIModule, IISNodeModule, WebSocketModule, and several CGI/ASP components) cannot initialize.
https://localhost proves that the IIS listener and TLS certificate are correct. The 500.1013 fault is reported after the TLS handshake and after authentication, which localizes the issue to the application-hosting pipeline rather than to networking or certificates.Affected Versions and Components
| Component | Version / Build Range | Notes |
|---|---|---|
| WinCC Unified PC Runtime | V17 (and later) | Node.js-based runtime; replaces legacy WinCC RT Advanced architecture |
| SIMATIC WinCC Unified Configuration | V17, V18, V19 | Engineering tool that publishes the RT web site |
| Microsoft IIS | 10.0 (Windows 10/11 / Server 2019/2022) | Must be installed with the full feature set listed below |
| iisnode | Shipped with WinCC Unified installer | Located under %ProgramFiles%\Siemens\Automation\WinCCUnified\Web\bin
|
| Node.js runtime | Embedded by WinCC Unified | Do not install a separate Node.js; use the one bundled with WinCC Unified |
Root Cause Analysis
Substatus codes in the 1000–1999 range of HTTP 500 are application-specific extensions generated by individual IIS modules. The 1013 code is produced by the iisnode Node.js hosting module when it cannot complete the worker handshake, and is frequently accompanied by an HRESULT: 0x6d entry in node_iisnode.log. Confirmed triggers include:
- Partial IIS installation — required ISAPI, CGI, or HTTP features are not enabled in Windows Features.
- The
ISAPIModuleand/orIISNodeModulenot registered in the<modules>collection of the WinCC Unified web site. - Worker process identity lacking
SeAssignPrimaryTokenPrivilegeorSeImpersonatePrivilege. - A
Web.configmismatch after an in-place upgrade of WinCC Unified or after a Windows Feature toggling. - An antivirus or EDR product intercepting the
node.exechild process. - A stale Node.js installation conflicting with the WinCC Unified-bundled Node.js.
The single most common resolution reported by Siemens support — and confirmed by multiple engineering PC recoveries — is enabling the complete IIS feature tree under Control Panel → Programs and Features → Turn Windows features on or off. A partial install (for example, only IIS Management Console and HTTP Errors) compiles the listener but leaves the application-hosting modules absent, which yields exactly the 500.1013 signature.
Prerequisites
Before changing the IIS feature set, verify the following on the affected PC:
- Operating system account: a member of the local Administrators group is required to install Windows features and to modify
applicationHost.config. - WinCC Unified PC Runtime version is listed in the WinCC Unified Configuration under Runtime → PC Systems and the project downloads successfully.
- You have access to the Windows installation media or a configured WSUS / online Windows Update channel so that optional IIS sub-features (CGI, ISAPI, WebSocket) can be enabled without re-imaging.
- A complete backup or system-restore point exists, since the IIS configuration is rebuilt during this procedure.
- Document the current IIS site bindings:
netsh http show sslcertand the contents ofC:\inetpub\wwwroot\WinCCUnified\Web.config.
Step-by-Step Resolution
Step 1 — Capture the Current State
Before changing anything, export the IIS configuration so that the change can be reversed if necessary:
%windir%\system32\inetsrv\appcmd add backup "BeforeWinCCFix"
copy "%ProgramFiles%\Siemens\Automation\WinCCUnified\Web\Web.config" "%ProgramFiles%\Siemens\Automation\WinCCUnified\Web\Web.config.bak"
Confirm the WinCC Unified SCADA RT service is registered:
sc query "Siemens WinCC Unified Runtime"
sc qc "Siemens WinCC Unified Runtime"
Verify the runtime reports RUNNING in the WinCC Unified Configuration tool (Runtime Manager → Status) before continuing. If the runtime is not running, this entire procedure will not produce a working state — proceed only after the runtime service starts cleanly.
Step 2 — Open the Windows Features Dialog
- Press
Win + R, typeappwiz.cpl, and press Enter. - Click Turn Windows features on or off.
- Expand Internet Information Services.
- Click the checkbox at the root of the IIS tree to enable every sub-feature. Do not selectively disable CGI, ISAPI Extensions, ISAPI Filters, HTTP Errors, HTTP Redirection, or WebSocket Protocol.
- Click OK and allow Windows to apply the feature changes. Reboot when prompted.
Step 3 — Required IIS Feature Inventory
The following features must be enabled for WinCC Unified PC Runtime to host correctly. Verify each one is checked after Step 2:
| Feature Path | Component | Required for WinCC Unified |
|---|---|---|
| Internet Information Services | Web server root | Yes |
| Web Management Tools → IIS Management Console | inetmgr | Yes (admin UI) |
| World Wide Web Services → Application Development Features → ISAPI Extensions | isapi.dll | Yes (iisnode ISAPI handler) |
| World Wide Web Services → Application Development Features → ISAPI Filters | isapi filter host | Yes |
| World Wide Web Services → Application Development Features → CGI | cgi module | Yes (Node.js spawn handshake) |
| World Wide Web Services → Common HTTP Features | Static content, Default document, HTTP errors, HTTP redirection | Yes |
| World Wide Web Services → Security | Request filtering, Basic auth, Windows auth, URL auth | Yes |
| World Wide Web Services → Performance Features | Static/dynamic content compression | Recommended |
| Web Management Tools → IIS 6 Management Compatibility | IIS Metabase compatibility | Recommended (legacy app pools) |
Step 4 — Restart the WinCC Unified Site
After the reboot in Step 2, reset IIS and the WinCC Unified Application Pool:
iisreset /restart
%windir%\system32\inetsrv\appcmd recycle apppool /apppool.name:"Siemens.WinCCUnified.WebAppPool"
If the application pool name differs in your installation, list the pools first:
%windir%\system32\inetsrv\appcmd list apppools
Step 5 — Validate the Web.config
Open %ProgramFiles%\Siemens\Automation\WinCCUnified\Web\Web.config and confirm the following handlers and modules are present. If any are missing, re-run the WinCC Unified Configuration tool's Compile & Download to regenerate the configuration.
<system.webServer>
<handlers>
<add name="iisnode" path="*.js" verb="*" modules="iisnode" resourceType="File" />
</handlers>
<modules>
<add name="iisnode" />
<add name="IsapiModule" />
<add name="WebSocketModule" />
</modules>
</system.webServer>
Step 6 — Re-publish the Runtime Project
- Open the WinCC Unified Configuration tool.
- Right-click the affected PC station → Compile and Download.
- Confirm the SCADA RT tile shows Running in Runtime Manager.
- Browse to
https://localhostand click the SCADA RT tile.
Verification
Use the following checks to confirm the fault is cleared:
- Browser request to
https://localhost/returns HTTP 200 with the WinCC Unified start page. - Browser request to
https://localhost/WinCCUnified/(or the path published by Configuration) returns HTTP 200 with the Runtime application shell — no 500.1013. - Command-line probe:
curl -k -i https://localhost/showsHTTP/1.1 200 OK. - Open IIS Manager → select the WinCC Unified site → Modules. Verify
iisnode,IsapiModule, andWebSocketModuleare listed and Enabled. - Inspect the IIS log at
%SystemDrive%\inetpub\logs\LogFilesfor the latest request — it should record200rather than500 1013. - Confirm the
node.exeworker is running:tasklist /FI "IMAGENAME eq node.exe"should show at least one instance owned by the application pool identity.
User Rights and Domain Policy Checks
If enabling all IIS features does not clear the 500.1013 fault, the issue may be a stripped-down worker identity. Confirm the following:
| Privilege | Why Required |
|---|---|
| SeAssignPrimaryTokenPrivilege | iisnode spawns the Node.js worker under the application pool identity |
| SeImpersonatePrivilege | Needed for the worker to assume the per-request token |
| Log on as a batch job | Required for the application pool identity to start |
Read/Write to %ProgramData%\Siemens\Automation\WinCCUnified
|
Runtime writes logs, temp files, and the SQLite alarm/archive store |
Group Policy objects that explicitly deny Log on as batch job or that remove SeAssignPrimaryTokenPrivilege from local administrators will produce the same 500.1013 signature. Audit with gpresult /h gpreport.html and look for policies that override the default user rights assignments.
WinCC Unified Configuration Verification
In the WinCC Unified Configuration tool under Runtime → PC Systems → Web System, validate:
- The HTTPS port (default 443) is not bound by another process.
netstat -ano | findstr :443should resolve to the IIS worker PID. - The certificate is valid, not expired, and the Subject or SAN matches
localhostfor local testing. - The runtime is set to Auto start and the start mode is Start as service.
- The Web Access check box is enabled on the runtime properties.
iisnode and ISAPI Diagnostic Reference
For deep diagnostics, capture both the IIS HTTPERR log and the iisnode log:
type "C:\inetpub\logs\FailedReqLogFiles\*" | findstr /C:"1013"
type "%ProgramFiles%\Siemens\Automation\WinCCUnified\Web\iisnode\*\*\*.log" | more
The iisnode log typically reports HRESULT 0x6d when the worker process exited before it could attach to the named pipe used by iisnode. Common remedies beyond enabling IIS features include:
- Setting the application pool's
startModetoAlwaysRunninginapplicationHost.config. - Increasing the
nodeProcessCountPerApplicationfrom the default1if the start-up race condition persists. - Excluding the WinCC Unified installation directory from real-time antivirus scanning (a known false-positive trigger).
Troubleshooting Matrix
| Symptom | Likely Cause | Remediation |
|---|---|---|
| 500.1013, HRESULT 0x6d in iisnode log | Partial IIS install (no CGI / ISAPI) | Enable all IIS sub-features (Step 2) |
| 500.1013 immediately after WinCC V18 → V19 upgrade | Stale Web.config from prior version | Re-run Compile & Download |
| 500.1013 only on HTTPS, HTTP works | Certificate mismatch | Re-bind the certificate in Configuration tool |
| 500.1013 on first request, subsequent requests work | Application pool cold-start under low-memory conditions | Set Start Mode = AlwaysRunning |
| 500.1013 + node.exe missing from tasklist | iisnode cannot spawn worker (privilege) | Verify SeAssignPrimaryTokenPrivilege |
| 500.1013 + EDR alerts on node.exe | Antivirus blocking child process | Add WinCC Unified directory to AV exclusion |
| 500.19 — Config file errors (different substatus) | Web.config malformed | Restore Web.config from .bak and re-publish |
Preventive Measures
To avoid recurrence after future Windows updates or feature toggles:
- Use Windows Server roles-as-features or a configuration management baseline (DSC, Ansible, Intune) that enforces the full IIS feature set on operator PCs.
- Disable the Windows optional feature Internet Information Services Hostable Web Core only if you have a documented reason — some enterprise images strip this and it interacts with iisnode.
- Schedule a monthly
iisreset /statusandsc query "Siemens WinCC Unified Runtime"health check in Task Scheduler. - Pin the WinCC Unified installation in a documented image and audit any deviation with
Get-WindowsOptionalFeature -Online | Where-Object {$_.FeatureName -like "IIS*"}. - Back up
%ProgramFiles%\Siemens\Automation\WinCCUnifiedandC:\inetpubafter every successful commissioning.
FAQ
What does IIS Error 500 substatus 1013 actually mean?
Substatus 1013 is generated by the iisnode module when the Node.js worker cannot complete its handshake with IIS. It typically appears with HRESULT 0x6d in the iisnode log and indicates a missing ISAPI module, a stripped-down application pool identity, or a corrupted Web.config.
Why does https://localhost work but the SCADA RT tile returns 500.1013?
The TLS listener and the static welcome page use only the core IIS components. The WinCC Unified SCADA RT tile launches a Node.js application through iisnode, which additionally requires ISAPI Extensions, ISAPI Filters, CGI, and WebSocket modules. If those are missing, IIS serves the static page but fails the Node.js bootstrap with 500.1013.
Do I have to enable every single IIS sub-feature?
Yes for the minimum runtime requirement. The fields-confirmed fix is to check all IIS check boxes under Turn Windows features on or off, then reboot. Selectively enabling only IIS Management Console, CGI, ISAPI Extensions, ISAPI Filters, and Windows Authentication is also typically sufficient, but the all-features approach removes the risk of missing a dependency that a future WinCC Unified update introduces.
Will reinstalling Windows fix a 500.1013 error?
Yes — a clean Windows image with the WinCC Unified installer usually succeeds because the IIS feature tree is at its default (which on most Windows builds is not the full set, but the Siemens installer adds the components it needs). The all-IIS-feature approach via Windows Features is the supported, non-destructive equivalent of a clean re-image.
Which Siemens support document covers this fault?
Refer to Siemens Support entry 109995988 — Fix HTTP error when accessing WinCC Unified PC Runtime for the official four-step remediation (Windows features, user rights, Configuration tool, IIS website status). Cross-reference Microsoft Learn HTTP Error 500 when you visit a web site that is hosted on IIS for the underlying ISAPI module diagnostic.