Resolving the Specified CGI Application Error in Azure App Service for Bold Reports
Overview
The error:
in Azure App Service typically indicates that the backend process (such as a .NET Core application running via IIS) has crashed, timed out, or exceeded resource limits.
While increasing request timeout may help in some scenarios, this issue is most commonly caused by resource constraints such as high CPU or memory usage. This article provides a comprehensive troubleshooting approach, prioritizing root causes before applying configuration changes.
Common Causes
1. High CPU Usage
- Application consumes excessive CPU during request processing
- Long-running or inefficient queries
- Infinite loops or blocking threads
2. Request Timeout
- Long-running API or report generation
- Default timeout exceeded before completion
Step-by-Step Troubleshooting
Step 1: Monitor CPU and Memory Usage
Follow the steps below to check resource utilization:
- Go to Azure Portal
- Navigate to App Services
- Select your App Service plan
- Go to Monitoring
- Click on Metrics
- Check the following:
- CPU Percentage
- Memory Percentage
- CPU Percentage
Step 2: Adjust Request Timeout
This issue typically arises from problems within a CGI (Common Gateway Interface) application running on a web server, often due to resource limitations such as exceeding memory or execution time limits.
To address this issue, you can adjust the request timeout settings in the web.config files using the following steps:
-
Begin by stopping the Azure App Service to prevent conflicts during configuration adjustments.
-
Locate and open the following web.config files within your application directory:
- wwwroot\idp\api\web.config
- wwwroot\idp\web\web.config
- wwwroot\idp\ums\web.config
- wwwroot\reporting\jobs\web.config
- wwwroot\reporting\api\web.config
- wwwroot\reporting\reportservice\web.config
- wwwroot\reporting\viewer\web.config
- wwwroot\reporting\web\web.config
- wwwroot\etl\etlservice\web.config
-
In each web.config file, within the
aspNetCoresection, add therequestTimeoutproperty as shown below:Before:
<aspNetCore processPath="dotnet" arguments=".\Syncfusion.Server.API.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />After:
<aspNetCore processPath="dotnet" arguments=".\Syncfusion.Server.API.dll" requestTimeout="00:20:00" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" /> -
Set the
requestTimeoutattribute to “00:20:00” to establish a 20-minute limit for request timeouts, accommodating longer processing durations.<?xml version="1.0" encoding="utf-8"?> <configuration> .... <aspNetCore processPath="dotnet" arguments=".\Syncfusion.Server.API.dll" requestTimeout="00:20:00" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" /> .... </configuration> -
Save the changes made to each web.config file after inserting the code snippet and updating the request timeout.
-
Once all modifications are saved, restart the Azure App Service to implement the adjustments effectively.
If you are using a lower plan, please upgrade your plan to Premium v3 P2V3