Azure App Service is a service used to create and deploy scalable, mission-critical web apps.
The errors indicate that the App Service is reachable but the app process is failing to start or respond correctly. No additional “silo safelisting” is required for basic browsing; instead, focus on app startup and configuration issues inside the App Service.
Use the following checks and troubleshooting steps:
- Confirm the app is actually starting
The 500.30 “ASP.NET Core app failed to start” means the worker process failed to start the .NET app in-process.- In the App Service, collect:
- Browser status codes and messages (502, 500.30).
- Application Event Log entries.
- ASP.NET Core Module stdout logs.
- For Azure App Service, follow the guidance in Troubleshoot ASP.NET Core on Azure App Service and IIS to enable and inspect stdout logs and event logs.
- In the App Service, collect:
- Check for common 500.30 / handler load failures
From the ASP.NET Core error reference, typical causes include:- Incorrect processPath or missing dotnet for framework-dependent deployments:
- In web.config, verify
<aspNetCore processPath="dotnet" ...>for framework-dependent deployments, orprocessPath=".\{ASSEMBLY}.exe"for self-contained deployments. - For framework-dependent deployments, ensure
C:\Program Files\dotnet\is present in the system PATH and accessible to the App Service worker process identity.
- In web.config, verify
- .NET Hosting Bundle / ASP.NET Core Module issues (for IIS):
- If hosting on IIS (not pure Azure App Service), ensure Windows Server Hosting (.NET Hosting Bundle) is installed and that the ASP.NET Core Module is correctly registered.
- Targeting a missing ASP.NET Core shared framework:
- If the app targets a runtime not present on the machine, the process will fail. Check that the required ASP.NET Core runtime version is available or deploy as self-contained.
- Application configuration/programming errors:
- The error may be due to configuration or code issues during startup. The stdout log will usually show the exception.
- Incorrect processPath or missing dotnet for framework-dependent deployments:
- Check for 500.0 ANCM In-Process Handler Load Failure
If the browser showsHTTP Error 500.0 - ANCM In-Process Handler Load Failure:- Verify the processPath in web.config as above.
- Confirm the app runs locally on Kestrel with the same configuration. If it fails locally, fix the app-level issue first.
- If using IIS, ensure the ASP.NET Core Module is installed and the correct IIS roles/features are enabled.
- Investigate 502 errors from the gateway
For502 Bad Gatewayin Azure App Service:- These are often caused by:
- Requests taking too long.
- High CPU or memory usage.
- Unhandled exceptions preventing responses.
- In the Azure portal for the App Service, go to Monitoring > Metrics and check:
- CPU time
- Memory working set
- Requests
- Use these metrics plus logs to see if the app is crashing, timing out, or being recycled.
- These are often caused by:
- Check for platform / RID conflicts
If the app was upgraded or redeployed:- A
System.BadImageFormatExceptionin stdout logs indicates platform conflicts (e.g., wrong RID or leftover assemblies). - Manually delete all files from the previous deployment before redeploying to avoid incompatible assemblies.
- A
- Consider startup timeouts
- The ASP.NET Core Module has a default
startupTimeLimitof 120 seconds. If the app has a long initialization (for example, heavy migrations or external calls), it may fail to start within this window and cause 500.30/502 symptoms. - If logs show the app is timing out during startup, increase
startupTimeLimitin web.config and/or optimize startup logic.
- The ASP.NET Core Module has a default
- No separate “silo safelist” needed for basic access
- The described errors (502, 500.30) are typical application/startup issues, not network blocking or URL safelisting problems.
- Focus on fixing the app startup and configuration issues using the logs and checks above rather than safelisting URLs.
Once stdout logs and event logs are collected, the specific exception or configuration error will usually point directly to the fix (missing runtime, bad configuration, permission issue, or code exception during startup).
References: