IIS reports problems with a status code plus a sub-status, for example 500.19. The sub-status tells you exactly which part of the request failed, so it is the fastest route to a fix. This guide lists the errors our Windows Hosting customers see most often.
First: see the real error
By default, visitors only see a generic “500 – Internal server error” page. To see the detailed message with the sub-status, temporarily add this to your web.config (inside the existing sections):
<system.webServer> <httpErrors errorMode="Detailed" /> </system.webServer> <system.web> <customErrors mode="Off" /> </system.web>
Reload the page and note the code, the Module and Handler lines and any config file line number shown. Remove these settings when you're done, because detailed errors can expose paths and code. More on this in Classic ASP: Parent Paths and Showing Detailed Errors.
Quick reference
| Error | Usual cause | Fix |
|---|---|---|
| 500 on a brand-new plan | Plan still provisioning | Wait up to 30 minutes |
| 403.14 Forbidden | No default document in the folder | Upload files to the web root, or set a default document |
| 404.0 Not Found | File or route doesn't exist | Check path, spelling and routing |
| 404.3 Not Found | Unknown file extension (MIME type) | Add a mimeMap |
| 404.13 Not Found | Upload bigger than the request limit | Raise maxAllowedContentLength |
| 500.19 | Invalid or locked web.config | Fix the XML or remove the locked section |
| 500.21 / 500.30 / 500.31 / 502.5 | ASP.NET Core app | Not supported on Windows Hosting |
| 500.22 / 500.23 | Old modules/handlers config in Integrated mode | Migrate config or disable validation |
| 503 Service Unavailable | App pool stopped after repeated crashes | Fix the crash, recycle the pool |
500 error straight after ordering
A new Windows plan needs up to 30 minutes to connect securely to its storage. Until then, even a correct site returns 500. Wait, then test again before changing anything.
403.14 – Forbidden (directory listing denied)
IIS found the folder but no home page in it, and directory browsing is off. Check:
- Your files are directly in the web root (normally
public_html), not in a sub-folder such aspublic_html/MySite. - Your home page has one of the default names (
default.aspx,index.html,index.php…) or is listed in a<defaultDocument>section. - For MVC sites: the app pool is v4.0 and Integrated. Otherwise routing never runs and IIS falls back to looking for a file.
404.0 and 404.3 – Not Found
404.0 is a plain “doesn't exist”. Check the file name and folder. IIS isn't case-sensitive, but links in your code might point to the wrong folder after a move.
404.3 means the file exists but IIS doesn't know its type. Add the MIME type (use <remove> first to avoid duplicates):
<staticContent> <remove fileExtension=".webp" /> <mimeMap fileExtension=".webp" mimeType="image/webp" /> </staticContent>
500.19 – Configuration data is invalid
IIS couldn't read your web.config. The detailed error shows the file and line. Typical causes:
- Malformed XML: a missing closing tag, a stray character, or an unescaped
&(write&, e.g. inside connection strings or URLs). - Duplicate section or entry: two
<system.webServer>blocks, or amimeMapthat already exists. Merge sections and add<remove>lines. - “This configuration section cannot be used at this path”: the section is locked on shared hosting. Remove it, or ask support if you really need it.
- Unrecognised element such as
aspNetCore: this is an ASP.NET Core app (see below).
Tip: open the file in VS Code or Visual Studio. XML errors are underlined immediately.
500.21, 500.30, 500.31, 502.5 – ASP.NET Core errors
These all mean the site is an ASP.NET Core / .NET 5+ application. Windows Hosting runs .NET Framework up to 4.8 and doesn't currently support ASP.NET Core, so no web.config change will fix them. See Can I Run ASP.NET Core or .NET 8 on Windows Hosting? for your options.
500.22 / 500.23 – Integrated pipeline configuration
An older site registers modules or handlers under <system.web>, which Integrated mode doesn't use. Move them to <system.webServer><modules> and <handlers>, or add:
<system.webServer> <validation validateIntegratedModeConfiguration="false" /> </system.webServer>
Parser and runtime errors (the “yellow screen”)
- Unrecognized attribute ‘targetFramework’: the pool is on the v2.0 runtime. In StackCP go to Web Tools → Manage App Pool, select v4.0 and recycle.
- Could not load file or assembly ‘X’ or one of its dependencies: a DLL is missing or the wrong version. Re-publish and upload the whole
binfolder; checkbindingRedirectentries inweb.configmatch the DLL versions. - Could not find a part of the path ‘…\bin\roslyn\csc.exe’: the
bin\roslynfolder wasn't uploaded. - Access to the path ‘…’ is denied: your code is writing to a folder it can't write to. See File and Folder Permissions for Uploads.
- A network-related or instance-specific error occurred while establishing a connection to SQL Server: wrong server name in the connection string. See Create an MS SQL Database and Connection Strings.
503 – Service Unavailable
If your application crashes several times in a short period (for example a stack overflow or an unhandled exception during startup), IIS stops the app pool to protect the server and returns 503. Fix the underlying error (check your own logging or temporarily enable detailed errors), then use Recycle in Manage App Pool. If the 503 remains, open a ticket so we can check the pool.
Classic ASP errors
- “The Include file ‘../…’ cannot contain ‘..’ to indicate the parent directory”: parent paths are disabled. Use
#include virtualas explained in Classic ASP: Parent Paths. - “An error occurred on the server when processing the URL”: the generic Classic ASP message. Turn on detailed errors to see the line number.
Need help?
If something doesn't work as described, open a support ticket from your client area or message us on WhatsApp at 01818160926. Include the full URL, the error code with its sub-status and the time it happened.
Categories
Written by
FimuroHost Team
Technical Writer