How to troubleshoot "no response" in browser from a WebHub page that runs server-side

This is the problem description, as it came in today:

…Nothing comes down the line. I can see the page in the in/out tab in the webapp assembled correctly - but somehow it is blocked and not spat out. In firefox network tab it seems to get the header fine too but NULL bytes of the page…

A static page goes through fine for the same domain.

A second machine with essentially the same configuration works fine.

WebHub Runtime v3.275, IIS on Windows Server 2019. No Spyhunter running , Content length big enough e.g. 200mb

General suggestions thus far:

  • look in Windows Event Viewer for evidence of w3wp.exe crashing (w3wp means World Wide Web Worker Process within IIS, which obviously should have been shortened to w4p but there you go). When w3wp.exe ends unexpectedly, the web response can hang.
  • Since you have already verified on the Html > Out panel that the content is generated, turn logging on for the runner to obtain more clues.

To adjust the logging level of a runner, start ZMAdmin from its start BAT file so that you get the WebHub configuration panel loaded, and navigate into WebHub Connectivity Layer > Runners, and select your Runner ID on the left side.

Screenshot here, including the hints for Logging Level:
https://screenshots.href.com/webhub/rsrcdef/ZMAdmin-WebHubConfig_Connectivity_Runner_Logging.png

Recommend using ‘all’ only while troubleshooting, then go back to ‘none’.

As always, start CSDispatcher.exe ( from the bin folder of Raize CodeSite Tools ) before the executable in question. For the runner, this means before IIS runs w3wp.exe to load runisa.dll. This means, reload the AppPool after changing the runner config, or run iisreset, or stop and restart the w3svc service.

If you do not have CodeSite tools installed, go into the Delphi IDE, and use the menu, Tools > GetIt for CodeSite Express. Once that is installed, you will find its runtime distribution (setup) for CSTools. Run the setup of CodeSite tools on the server. ( or build your server using the WebHub Appliance powershell scripts )

Update from customer:

CodeSite tools installed. This shows in the WebHubSharedLog CSL file after a couple of requests:

    SetCodeSiteLoggingStateFromText = warning,error,exception
    IsProcessRunningEx: OpenProcess 2492 last error 5

The first line tells me that the log is not showing ‘all’ possible details.

The next line shows operating system error 5, which means ‘access denied’ which basically means the runisa.dll cannot talk to whichever process has PID 2492. To verify which process that is, look with TaskMgr or PowerShell.

The first thing I would check is that DEP is enabled only for essential Windows programs. Control Panel > System > Advanced > DEP

Microsoft has gone back and forth on which is the default over the years.
[x] Turn on DEP for essential Windows programs and services only —> this is the recommended setting for WebHub servers.

To get troubleshooting clues from the runner, you want /scripts/runisa.dll?r:echo to operate on a host. The default host which is open by security rules is ‘localhost’. If localhost is working but no response gets to the outside world, change the security temporarily so that ?r:echo is visible from outside the server.

If the r:echo response is an empty body, in ZMAdmin, check the Shared settings for runners and make sure Echo is enabled.

This issue has been resolved.

Once the r:echo response was visible, it was clear that the runner could not see the Hub. Checking AppPool AdvancedSettings showed that the AppPool was running under ApplicationPoolIdentity. Changing that to LocalSystem and restarting IIS meant that the runner could see the Hub directly. Seeing the Hub corresponds to seeing Apps.

After that change was made, responses from the App went through to the browser, as verified on the Network tab of developer tools in Firefox or Chrome.