500 Internal Server Error
Resolving 500 Server Errors on IIS
Almost everyone has encountered an http 500 internal server error as they browse the web. 500 internal server errors have several names. You may see the page report a HTTP 500 internal server error, a HTTP 500 error or a HTTP error 500. Developers and website administrators may see a 500 Internal Server error when managing their own server.
What is a 500 Internal Server Error?
In short, a HTTP 500 error means that there is a problem with the configuration of the server.
An HTTP 500 error is not a problem the end user can solve themselves. In their case, they must report the problem to the server administrator or site owner. But if you are managing your own IIS server and it’s your job to diagnose 500 server errors, there are several ways to make the process easier.
Diagnosing 500 Internal Server Errors
When you receive a HTTP 500 error report, assuming the server is remote (not the same computer that you are running the application or site on) you probably won’t be given much indication as to where the problem lies. The text that accompanies an HTTP 500 error is deliberately very vague by default: this is a security measure which avoids exposing technical information to end users. However, this can be changed to help you diagnose the problem.
Change Error Reporting In IIS
In IIS, it’s possible to change error reports to provide more information on the error. This feature is best used with caution and is most suitable for development servers which are not exposed to a broad audience.
Find the site in IIS Manager and click on it. Then double click on the ASP section which is under IIS:
Open the Debugging Properties node, and change the value of “Send Errors to Browser” to True:
Click Apply in the upper right.
Now click again on the web site (in this case, we are using Default Web Site as an example) and double click Error Pages:
When this dialog opens, you will see various IIS errors. Right click on the 500 error and choose Edit Feature Settings.
In the Edit Error Pages Settings window, select the Detailed errors radio button and click OK:
Now when you run your application and receive the 500 Internal Server Error, you’ll receive more detail about the error.
Use Server Logs or the Windows Event Viewer
If you encounter HTTP error 500 while running a .Net application, the Windows Event Viewer can help you to trace 500 internal server errors and determine a pattern. If the server logs are not clear, gather information from the user and find out what they were trying to do when the error occurred.
If you are not developing for .Net, you may still have access to detailed server logs which can help you to understand when the error is occurring.
Other things you can try to resolve a 500 Internal Server Error
Reinstall the .Net Framework
If you’re using the .Net Framework, a corrupt install can cause 500 internal server error messages. Reinstall the .Net Framework and see if this solves the problem.
Check Web.Config Permissions
The web.config file is a crucial component within .Net. If it is missing or corrupt, or if the permissions on the file have changed, this could cause HTTP 500 errors. Check the permissions in the first instance.
Reinstall Your Application
Sometimes .Net generates a HTTP error 500 due to a problem with the application itself. Back up your data and reinstall your application if it is practical to do so.
Do you have Skype Installed?
Skype can conflict with IIS web applications if you don’t have your Skype options set correctly.
Within Skype, go to Tools>Options>Advanced>Connections and uncheck “Use port 80 and 443 as alternatives for incoming connections”. By doing this, you can prevent Skype from grabbing port 80 and 443.
Refer to Microsoft’s 500 Error Code List
Microsoft splits HTTP 500 internal server errors into categories. If your HTTP 500 error is suffixed by a period and another number (such as 500.13), the problem should be fairly easy to track down. Here’s a table which describes each error and its meaning in IIS; more explanations can be found in this Microsoft Knowledgebase article.
|IIS HTTP Status Code||Explanation Of HTTP 500 internal server error|
|500.0||Module or ISAPI error occurred.|
|500.11||Application is shutting down on the web server.|
|500.12||Application is busy restarting on the web server.|
|500.13||Web server is too busy.|
|500.15||Direct requests for Global.asax are not allowed.|
|500.19||Configuration data is invalid.|
|500.21||Module not recognized.|
|500.22||An ASP.NET httpModules configuration does not apply in Managed Pipeline mode.|
|500.23||An ASP.NET httpHandlers configuration does not apply in Managed Pipeline mode.|
|500.24||An ASP.NET impersonation configuration does not apply in Managed Pipeline mode.|
|500.50||A rewrite error occurred during RQ_BEGIN_REQUEST notification handling. Aconfiguration or inbound rule execution error occurred.|
|500.41||A rewrite error occurred during GL_PRE_BEGIN_REQUEST notification handling. A global configuration or global rule execution error occurred.|
|500.51||Note Here is where the global rules configuration is read.|
|500.52||A rewrite error occurred during RQ_SEND_RESPONSE notification handling. Anoutbound rule execution occurred.|
|500.53||A rewrite error occurred during RQ_RELEASE_REQUEST_STATE notification handling. An outbound rule execution error occurred. The rule is configured to be executed before the output user cache gets updated.|
|500.100||Internal ASP error.|
Watch the Video