Problems with IIS and ASP.NET
Published 21 October 2021
HTTP Error 500.0 – ASP.NET Core IIS hosting failure (in-process)
First, make sure that you have ASP.NET Core Module for IIS installed and have restarted IIS afterwards.
If the ASP.NET Core Module is already installed, the IIS Application Pool for SQL Monitor probably needs to be recycled, or IIS restarted.
HTTP Error 500.24 – ASP.NET Core IIS hosting failure (in-process)
This is caused by having the ASP.NET Impersonation Enabled in the IIS > Authentication section of your IIS site that is hosting SQL Monitor.
HTTP Error 500.31 – Failed to load ASP.NET Core runtime
First, make sure that you have ASP.NET Core Module for IIS installed and have restarted IIS afterwards.
If the ASP.NET Core Module is already installed, the IIS Application Pool for SQL Monitor probably needs to be recycled, or IIS restarted.
HTTP Error 500.32 – Failed to load .NET Core host
This is caused when the Advanced Setting Enable 32-Bit Applications is set to True.
Open Inetmgr, right click on the Application pool and choose Advanced Settings and set Enable 32-Bit Applications to False
Troubleshooting ASP.NET
Versions of SQL Monitor older than v.12 relied on ASP.NET being installed. Some default IIS installations don't enable ASP.NET.
If you installed ASP.NET using the Add or Remove Programs dialog or the Configure Your Server Wizard, ASP.NET should be automatically enabled in IIS.
If you installed it as part of another application, downloaded it from the web, or installed it prior to installing IIS, you must enable ASP.NET manually. Before you install SQL Monitor, make sure your IIS server has ASP.NET enabled.
To change ASP.NET settings, use IIS Manager.
For more information, see ASP.NET and IIS Configuration in the Microsoft documentation.
Enabling ASP.NET impersonation
IIS needs to provide a Windows identity to access protected Windows resources or files or database servers. ASP.NET also needs access to these, but by default it doesn't use the same Windows identity.
You need to configure ASP.NET to impersonate the IIS Windows identity. For instructions to do this in IIS 7, see Configure ASP.NET Impersonation Authentication (IIS 7).
Troubleshooting IIS
If you're using SQL Monitor with IIS, ASP.NET Core Module for IIS must be installed and IIS restarted afterwards.
Security settings
SQL Monitor requires the following security permissions to be enabled in IIS 7:
- anonymous authentication.
- forms authentication.
In IIS 7.5, security has been tightened so that w3wp.exe
(the IIS application pool process) runs by default under the ApplicationPoolIdentity
account. In Windows Server 2008 R2 and Windows 7 this is a Managed Service Account. Managed Service Accounts are a new concept in Win 7 / Windows 2008 R2. For more information, read the following article: http://technet.microsoft.com/en-us/library/dd367859.aspx.
The ApplicationPoolIdentity
account does not necessarily have access permissions to the SQL Monitor website files that are installed by default to %ProgramFiles%\Red Gate\Sql Monitor\Web
. You can fix this by manually giving permissions to the SQL Monitor website folder. To do this, run the following command:
C:\>icacls "C:\Program Files\Red Gate\SQL Monitor\Web" /grant "IIS APPPOOL\Monitor":(OI)(RX)
IIS APPPOOL\Monitor
is the Managed Service Account automatically generated for the Monitor application pool; the Monitor application pool is created automatically when adding a website called Monitor.
In IIS Manager, go to the Monitor website, double-click Authentication and then set Anonymous Authentication to use Application Pool Identity (i.e IIS APPPOOL\Monitor
) rather than IUSR (IUSR is the default user identity for anonymous authentication).
SQL Monitor will not work with any application pool using Classic Managed Pipeline Mode. You will need to ensure that SQL Monitor is added to an application pool running Integrated Pipeline mode.
HTTP Error 500.19 – Internal Server Error messages
First, make sure that you have ASP.NET Core Module for IIS installed and have restarted IIS afterwards.
The SQL Monitor Web Server may display the following message (where ###
is the identifier for that specific error):
HTTP Error 500.19 - Internal Server ErrorHRESULT: 0x80070### Description of HRESULT The requested page cannot be accessed because the related configuration data for the page is invalid.
You can find possible causes and solutions for errors by checking the HRESULT
identifier against the list here: http://support.microsoft.com/kb/942055.
IIS Worker Process blocking SQL Monitor update
The IIS Worker Process may hold locks on SQL Monitor application files so that it can run them, and must release those locks for them to be updated.
To instruct the Worker Process to shut down the SQL Monitor website and release those locks, the installer will automatically create an app_offline.htm file in the website's application directory.
Graceful shutdown may take up to the amount of time specified in the pool's Shutdown Time Limit (seconds) advanced setting, after which the update can continue. The app_offline.htm file will be automatically deleted.