Resolving WinCC Unified IIS HTTP Error 500.1013 on PC Runtime

David Krause10 min read
HMI / SCADASiemensTroubleshooting
Licensed PE Working through this on a live machine? A Maine-licensed engineer can take it from here — included with IMD hardware, by the hour for everything else. Book an engineer

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.

A successful HTTPS handshake to 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:

  1. Partial IIS installation — required ISAPI, CGI, or HTTP features are not enabled in Windows Features.
  2. The ISAPIModule and/or IISNodeModule not registered in the <modules> collection of the WinCC Unified web site.
  3. Worker process identity lacking SeAssignPrimaryTokenPrivilege or SeImpersonatePrivilege.
  4. A Web.config mismatch after an in-place upgrade of WinCC Unified or after a Windows Feature toggling.
  5. An antivirus or EDR product intercepting the node.exe child process.
  6. 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 sslcert and the contents of C:\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

  1. Press Win + R, type appwiz.cpl, and press Enter.
  2. Click Turn Windows features on or off.
  3. Expand Internet Information Services.
  4. 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.
  5. Click OK and allow Windows to apply the feature changes. Reboot when prompted.
Toggling only the parent IIS checkbox is not sufficient. The dialog enables the parent but leaves child nodes at their previous state on some Windows builds. Click each child node explicitly to checked to guarantee the full module set is installed.

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

  1. Open the WinCC Unified Configuration tool.
  2. Right-click the affected PC station → Compile and Download.
  3. Confirm the SCADA RT tile shows Running in Runtime Manager.
  4. Browse to https://localhost and click the SCADA RT tile.

Verification

Use the following checks to confirm the fault is cleared:

  1. Browser request to https://localhost/ returns HTTP 200 with the WinCC Unified start page.
  2. Browser request to https://localhost/WinCCUnified/ (or the path published by Configuration) returns HTTP 200 with the Runtime application shell — no 500.1013.
  3. Command-line probe: curl -k -i https://localhost/ shows HTTP/1.1 200 OK.
  4. Open IIS Manager → select the WinCC Unified site → Modules. Verify iisnode, IsapiModule, and WebSocketModule are listed and Enabled.
  5. Inspect the IIS log at %SystemDrive%\inetpub\logs\LogFiles for the latest request — it should record 200 rather than 500 1013.
  6. Confirm the node.exe worker 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 :443 should resolve to the IIS worker PID.
  • The certificate is valid, not expired, and the Subject or SAN matches localhost for 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 startMode to AlwaysRunning in applicationHost.config.
  • Increasing the nodeProcessCountPerApplication from the default 1 if 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:

  1. Use Windows Server roles-as-features or a configuration management baseline (DSC, Ansible, Intune) that enforces the full IIS feature set on operator PCs.
  2. 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.
  3. Schedule a monthly iisreset /status and sc query "Siemens WinCC Unified Runtime" health check in Task Scheduler.
  4. Pin the WinCC Unified installation in a documented image and audit any deviation with Get-WindowsOptionalFeature -Online | Where-Object {$_.FeatureName -like "IIS*"}.
  5. Back up %ProgramFiles%\Siemens\Automation\WinCCUnified and C:\inetpub after 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.

Back to blog