HTTP Error 500.30 - ASP.NET Core app failed to start
IIS/Azure’s ASP.NET Core Module launched your app but it crashed during startup.
Meaning
The real exception happened in Program.cs / startup — missing configuration, a bad connection string, a missing runtime, or a DI registration failure. 500.30 only tells you that startup failed; the event log or stdout log tells you why.
Common causes
- Exception in startup (missing config value, invalid connection string, failed migration)
- Wrong .NET runtime / hosting bundle not installed
- Missing environment variables or appsettings in production
- Unresolvable DI service at startup
- File permission problems for the app pool identity
⚡ Quick fix
- Enable stdout logging in web.config and read the log
- Run the app from the publish folder:
dotnet MyApp.dllto see the exception - Install the matching ASP.NET Core Hosting Bundle
- Check Event Viewer → Application (IIS AspNetCore Module V2)
Detailed fix by platform
.NET
- Turn on stdout logs (web.config) temporarily:xml
<aspNetCore processPath="dotnet" arguments=".\MyApp.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
Azure
- App Service: Diagnose and solve problems → “Application Event Logs”, or set
ASPNETCORE_DETAILEDERRORS=truebriefly in a non-production slot.
How to diagnose
- Startup exception — What does stdout/event log show?
- Runtime — Hosting bundle / runtime version installed?
- Config — All settings and connection strings present?
🧠 Still stuck? Analyze your error
Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.
Was this page helpful?
Report a correction or suggest an improvement
Last updated 2 Oct 2026