When an ASP.NET site on Windows hosting breaks, the browser usually shows you a number: 500.19, 500.30, 503, 403.14. That number is the fastest route to the fix, because each one points to a different layer: web.config, your app's startup, the application pool, or a missing file. This guide lists the common ASP.NET problems on shared Windows hosting and what to check for each.
Read the full HTTP status code first, including the number after the dot. 500.19 means web.config is broken or uses a locked setting; 500.30 means an ASP.NET Core app crashed while starting; 503 means the app is offline or its pool stopped; 403.14 means there is no default page. Then check the Plesk logs for your domain. Remove any leftover app_offline.htm, and never leave detailed errors switched on after you have the answer.
Error messages from the Plesk panel itself, email and databases are covered in Common Plesk error messages and fixes. Where each log lives is in How to check Plesk logs.
1. Start with the exact error
A generic "500 Internal Server Error" page hides the detail. To see it:
- ASP.NET Core: set
stdoutLogEnabled="true"inweb.config, create an emptylogsfolder inhttpdocs, reload the page and read the newest file inlogs. - .NET Framework: in
web.config, undersystem.web, set thecustomErrorselement'smodetoOff, reload, and read the yellow error page:
<system.web>
<customErrors mode="Off" />
</system.web>Switch both back as soon as you have the message. Detailed errors show your code paths and settings to every visitor.
2. The status codes and what they mean
| What you see | Usual cause | First fix |
|---|---|---|
| 500.19 | Invalid XML in web.config, or a section locked on shared hosting | Undo the last web.config change; validate the XML |
| 500.30 | ASP.NET Core app threw an exception at startup | Read the stdout log; often a bad connection string or missing setting |
| 500.31 or 500.32 | .NET runtime not on the server, or 32/64-bit mismatch | Target a version Plesk lists, or publish self-contained |
| 500.0 or yellow page | An exception in your code | Read the stack trace and fix the code |
| 503 | app_offline.htm present, or the application pool stopped | Delete app_offline.htm; see the 503 guide |
| 403.14 | No default document in the folder | Upload default.aspx or index.html, or route / in your app |
| 404 after upload | Files uploaded one folder too deep | Move the contents of publish directly into httpdocs |
| 401 | Authentication settings in web.config or your app | Check authentication and authorization sections |
3. The app worked, then started returning 503
On IIS, a 503 usually means the application pool is stopped. The most common reason is rapid-fail protection: the app crashed several times within a few minutes, so IIS stopped it.
- Check
httpdocsfor a leftoverapp_offline.htmand delete it. - Read the logsfor the crash that came before the 503.
- Fix the crash, then restart the app.
If your plan includes a dedicated application pool (ASP Enterprise lists one), you can recycle it in Plesk. Otherwise ask support to recycle the pool for you. Restarting without fixing the crash brings the 503 back. The full guide is Resolving 503 errors on IIS.
4. Database connection failures
Most "cannot open database" or "login failed" errors come from the connection string:
- Server name. Copy it exactly as Plesk shows it under Databases; it is not always
localhost. - User and password. Use the database user you created in Plesk, not your Plesk login.
- Certificate errors. Newer SQL client libraries encrypt by default; add
TrustServerCertificate=True;if you see "the certificate chain was issued by an authority that is not trusted". - Connecting from your own PC. The SQL Server port is closed from outside, so tools on your computer can't reach the hosted database. Your app on the server can.
Details and examples: What to use for the MSSQL connection string.
5. Pages are slow, or users are logged out at random
- Slow first request after a quiet period is a cold start: IIS stopped the idle worker process and your app is starting again. It is normal.
- Random logouts usually mean sessions are kept in memory and are lost when the pool recycles. Store sessions in the database, or use cookie authentication that doesn't depend on server memory.
- Consistently slow pages point to your code or queries. See Optimising ASP.NET performance on shared Windows hosting.
6. Permission errors when writing files
If uploads or log writing fail with "access to the path is denied", your app is writing to a folder it isn't allowed to. Write only inside your own subscription, typically a folder such as App_Data, and build paths from the app's content root rather than hard-coding C:\.... Managing ASP.NET file permissions in Plesk covers setting write access.
7. Certificate warnings
A "connection not private" warning means the certificate doesn't match the name in the address bar, or has expired. Issue or reissue the free Let's Encrypt certificate for the domain and www in Plesk, and include webmail if you use it. The domain must point at the hosting first. See Install SSL in Plesk.
8. When to contact support
Contact support when the cause is on the server side: a runtime version you need is missing, a shared pool needs recycling, or web.config fails with a 500.19 on a section you believe should be allowed. Include your domain, the full error code, the time it happened and what you changed just before.
Domain India Windows hosting is managed in Plesk on every plan. The cards show live prices, excluding 18% GST.
- 100 GB Storage
- Unmetered Bandwidth
- 15 Websites
- 100 Email Accounts
ASP Enterprise lists a dedicated application pool, so you can recycle your app yourself from Plesk.
What does HTTP Error 500.19 mean on ASP.NET hosting?
IIS could not read your web.config, because the XML is invalid or it uses a configuration section that is locked on shared hosting. Undo your last change to web.config and validate the XML.
What does HTTP Error 500.30 mean?
An ASP.NET Core app failed while starting. Turn on the stdout log in web.config, create a logs folder in httpdocs, reload the site and read the newest log file for the exception, then turn the log off.
Why does my ASP.NET site show 503 Service Unavailable?
Either an app_offline.htm file is in httpdocs, or the application pool stopped after repeated crashes. Delete app_offline.htm, find the crash in your logs, fix it, then recycle the pool in Plesk if your plan includes a dedicated pool, or ask support.
Can I see the Windows Event Viewer on shared hosting?
No. Server-wide logs are not available on shared Windows hosting. Use the Plesk logs for your domain, the ASP.NET Core stdout log, or your application's own logging, and ask support if you need something checked on the server.
Why can't SQL Server Management Studio on my PC connect to my database?
The SQL Server port is closed from outside on Domain India Windows hosting. Your application on the hosting server connects normally. Manage data with the database tools in Plesk.
How do I show the real error instead of a generic 500 page?
For ASP.NET Core, enable the stdout log in web.config. For .NET Framework, set customErrors mode to Off. Switch them back once you have the message, because detailed errors expose your code to visitors.
Still stuck? Open a ticket with your domain and the full error code, or compare the Windows hosting plans. Support is on 24/7 live chat, and tickets get a first response within 15 minutes.
Send your domain, the full error code and what changed just before it started.
Open a support ticket