500 internal server error windows server

Ошибка 500 Internal Server Error — одна из самых распространенных ошибок, с которой может столкнуться администратор сервера Windows. Она может возникнуть в результате нескольких причин и указывает на проблемы с сервером.

Одной из основных причин ошибки 500 Internal Server Error является ошибка в коде скрипта или приложения, которое запускается на сервере. Если возникла ошибка при выполнении запроса, сервер не может вернуть корректный ответ, и на экране пользователя появляется сообщение об ошибке.

Ошибки 500 Internal Server Error также могут возникать из-за проблем с конфигурацией сервера. Неверные настройки или неправильно указанные пути к файлам могут вызвать ошибку. В таких случаях, необходимо проверить файлы конфигурации и убедиться, что они содержат правильные данные и пути к файлам.

Чтобы исправить ошибку 500 Internal Server Error, необходимо провести диагностику проблемы и выявить ее источник. Следует проверить логи сервера на предмет наличия подробной информации об ошибке. Можно также попробовать перезапустить сервер, чтобы скрипты и приложения были инициализированы заново.

Если причина ошибки не может быть идентифицирована, то рекомендуется обратиться за поддержкой к специалистам, чтобы они помогли разобраться с проблемой и исправили ее.

Содержание

  1. Ошибки 500 Internal Server Error
  2. Причины возникновения ошибки Internal Server Error
  3. Решение проблемы на Windows Server
  4. Проверка наличия правильных разрешений на файлы и папки

Ошибки 500 Internal Server Error

Вот некоторые из наиболее распространенных причин, которые могут вызывать ошибки 500 Internal Server Error:

  1. Ошибка в коде на сервере. Это может быть вызвано, например, синтаксическими ошибками в скрипте или ошибками в базе данных.
  2. Проблемы с правами доступа к файлам или папкам на сервере. Например, некоторые файлы могут иметь неправильные разрешения или отсутствующие права на чтение/запись.
  3. Недостаток ресурсов на сервере. Если сервер не имеет достаточного количества памяти или ресурсов процессора, то это может вызывать ошибку 500 Internal Server Error.
  4. Проблемы с настройками сервера. Некоторые неправильные настройки сервера могут вызывать ошибку 500 Internal Server Error.
  5. Проблемы с подключением к базе данных. Если сервер не может подключиться к базе данных, то это тоже может вызывать ошибку 500 Internal Server Error.

Чтобы решить ошибку 500 Internal Server Error, рекомендуется проверить следующие вещи:

  1. Проверьте код на сервере на наличие синтаксических ошибок или ошибок в базе данных. Используйте журналы ошибок сервера, чтобы найти и исправить проблемы.
  2. Проверьте права доступа к файлам и папкам на сервере. Убедитесь, что нужные файлы имеют правильные разрешения и права на чтение/запись.
  3. Проверьте доступность ресурсов на сервере. Если сервер работает на предельных значениях своих ресурсов, рассмотрите возможность увеличения объема памяти или процессора.
  4. Проверьте настройки сервера. Убедитесь, что все настройки сервера настроены правильно и соответствуют требованиям вашего приложения.
  5. Проверьте подключение к базе данных. Убедитесь, что сервер может успешно подключаться к базе данных и имеет правильные настройки подключения.

В зависимости от конкретной проблемы, решение ошибки 500 Internal Server Error может потребовать различных действий. Если проблема не может быть решена, рекомендуется обратиться к администратору сервера или провайдеру хостинга для получения поддержки.

Причины возникновения ошибки Internal Server Error

Ошибка Internal Server Error (ошибка 500) может возникнуть по разным причинам. Вот некоторые из наиболее распространенных:

1. Проблемы с кодом серверного приложения: Ошибка 500 может возникнуть из-за ошибок в коде серверного приложения, которое обрабатывает запросы на сервере. Это может быть вызвано некорректным синтаксисом, недостаточными правами доступа или ошибками в логике приложения.

2. Недостаточные системные ресурсы: Если сервер не имеет достаточного количества ресурсов (например, памяти или процессорного времени), то это может привести к ошибке 500. Это может произойти, если сервер перегружен или если приложение использует слишком много ресурсов.

3. Проблемы с базой данных: Если серверное приложение взаимодействует с базой данных, то проблемы с базой данных могут вызвать ошибку 500. Это могут быть проблемы с подключением к базе данных, неправильными запросами или другими проблемами связанными с базой данных.

4. Неправильная конфигурация сервера: Некорректная конфигурация сервера может привести к ошибке 500. Например, неправильные настройки веб-сервера, неправильные разрешения каталогов или неправильная конфигурация серверного приложения.

5. Проблемы сети: Иногда проблемы сети могут привести к ошибке 500. Это могут быть проблемы с подключением к серверу, неправильной настройкой сети или другими проблемами связанными с сетью.

Все эти причины могут привести к появлению ошибки Internal Server Error на Windows Server. Чтобы решить эту проблему, необходимо исследовать и исправить источник ошибки. Обычно это требует анализа логов сервера, проверки конфигураций и исправления ошибок в коде серверного приложения или базе данных.

Решение проблемы на Windows Server

В данной статье представлены несколько шагов, которые помогут вам решить проблему с ошибкой 500 Internal Server Error на Windows Server.

  1. Проверьте журнал ошибок сервера.
  2. Первым делом, необходимо проверить журнал ошибок сервера, чтобы понять причину появления ошибки. Чаще всего, информация об ошибке содержится в файле error.log или access.log. Вы можете найти эти файлы в папке, где установлен сервер.

  3. Проверьте наличие правильных разрешений на папки и файлы.
  4. Убедитесь, что у сервера есть необходимые разрешения на доступ к папкам и файлам, с которыми он работает. Права доступа могут быть изменены в свойствах папок и файлов через проводник Windows.

  5. Перезапустите службу сервера.
  6. Попробуйте перезапустить службу сервера, которую использует ваш веб-сайт. Это может быть IIS (Internet Information Services), Apache или другой веб-сервер. Найдите службу в «Диспетчере служб» и нажмите «Перезапустить» или «Запустить», если служба остановлена.

  7. Проверьте конфигурацию веб-сервера.
  8. Проверьте конфигурационные файлы вашего веб-сервера на наличие ошибок или некорректных настроек. Обычно, конфигурационные файлы располагаются в папке с установленным сервером и имеют .conf или .config расширение. Сделайте необходимые исправления и перезапустите сервер.

  9. Проверьте наличие необходимых модулей и расширений.
  10. Убедитесь, что все необходимые модули и расширения установлены и активированы на вашем сервере. Если требуемый модуль или расширение отсутствует, установите его с помощью инструментов управления сервером или скачайте его с официального сайта разработчика.

Если вы выполнили все вышеперечисленные шаги, но проблема с ошибкой 500 Internal Server Error все еще не решена, рекомендуется обратиться к специалистам или разработчикам, которые могут помочь вам с поиском и исправлением проблемы.

Проверка наличия правильных разрешений на файлы и папки

Ошибка 500 Internal Server Error может возникать из-за неправильных разрешений на файлы и папки на сервере. Чтобы проверить, имеются ли у файлов и папок правильные разрешения, выполните следующие действия:

  1. Откройте проводник и найдите папку или файл, к которым относится ошибка.
  2. Щёлкните правой кнопкой мыши на папке или файле и выберите «Свойства».
  3. На вкладке «Безопасность» убедитесь, что у нужных групп или пользователей есть необходимые права доступа, такие как «Чтение и выполнение» или «Полный доступ».
  4. Если нужных прав доступа нет, нажмите на кнопку «Изменить» и добавьте необходимые группы и пользователей с правильными разрешениями.
  5. После добавления или изменения прав доступа нажмите «Применить» и «ОК».
  6. Перезапустите сервер и проверьте, исправилась ли ошибка.

Если ошибка по-прежнему возникает после проверки и изменения разрешений на файлы и папки, возможно, вам потребуется обратиться за помощью к администратору сервера.

If your Internet Information Services (IIS) produces a 500 – Internal server error, your website is in serious trouble. Debugging an IIS 500 – Internal server error can take some time, so you’d better be prepared for the worst-case scenario. You don’t want to research how to deal with this error under time pressure.

Contents

  1. Cause of 500 – Internal server error
  2. Debugging an IIS 500 – Internal server error
  3. Resolving an IIS 500 – Internal server error
  4. Common 500.x substatus codes
  • Author
  • Recent Posts

Surender Kumar has more than twelve years of experience in server and network administration. His fields of interest are Windows servers, Active directory, PowerShell, web servers, networking, Linux, virtualization, and Kubernetes. He loves writing for his blog.

In my previous posts, you learned about detailed errors and failed request tracing in IIS (Internet Information Server). I recommend reading those articles first before you proceed with this one.

Cause of 500 – Internal server error

This is the most common error you will encounter with any website hosted with IIS. In most cases, a developer messed up. Thus, the fastest way is often to simply reverse the last action taken, such as restoring an earlier version of your web application. Once your system is running again, you can investigate the cause of the error on your test side in peace.

500 Internal server error

500 Internal server error

The HTTP 500 error is a server-side error. While we understand that the problem is on the server end, the error is usually ambiguous. It doesn’t exactly tell the administrator what is wrong with the server. Thus, debugging a 500 – Internal server error often takes some time.

Debugging an IIS 500 – Internal server error

Since the above error doesn’t really tell what’s actually wrong with the server, we need to enable detailed errors, as discussed in my previous post. Once detailed errors are enabled, you will see more detailed error information, including an HTTP substatus code. Sometimes even the detailed errors don’t show any useful information right away. For example, see the following screenshot:

The page cannot be displayed because an internal server error has occurred

The page cannot be displayed because an internal server error has occurred

Here I am getting: The page cannot be displayed because an internal server error has occurred. There is no HTTP status code or substatus code listed on the error page. If you get such an error even when detailed errors are enabled, right-click anywhere in the browser window and select Inspect (or press F12).

Opening developer tools in web browser to reveal server errors

Opening developer tools in web browser to reveal server errors

This opens the developer tools in your browser window. Now, click the Console tab. The actual error thrown by the web server is displayed.

Viewing server errors using the Console tab of the web browser's developer tools

Viewing server errors using the Console tab of the web browser’s developer tools

To further understand the exact cause of 500 errors, enable Failed Request Tracing, as discussed in my previous post. Now, try to replicate the problem. If you can replicate it, open the newly generated XML log file in a web browser. The following screenshot shows the actual cause of a 500 – internal server error with a substatus code of 19 (HTTP 500.19 error):

Determining the cause of a 500 error using the Failed Request Tracing log file

Determining the cause of a 500 error using the Failed Request Tracing log file

Usually, substatus code 19 indicates that the configuration data is invalid. This could be due to some malformed or unidentified element in a server-level config file (ApplicationHost.config) or website-level config file (web.config). If you take a closer look at the ConfigExceptionInfo field of the log file, you will find the exact line number (6 in our case) in the web.config file that caused the exception. Now let’s take a look at the web.config file itself.

Viewing the problematic element in the web.config file

Viewing the problematic element in the web.config file

Here, you can see that the developer tried to add a mime type in the config file, but it was already defined in the server-level configuration file (i.e., ApplicationHost.config). Therefore, the Cannot add duplicate collection entry of type ‘mimeMap’ with unique key attribute ‘fileExtension’ set to ‘.mp4’ exception was returned. Furthermore, if there is some unidentified element, a syntax error, or even a typo in the web.config file, you will most likely get a similar error.

Resolving an IIS 500 – Internal server error

To resolve an IIS 500 – Internal server error, you could simply remove the line that is causing the exception. Alternatively, if you don’t want to remove this line for some reason, add the following code right above line 6 in web.config:

<remove fileExtension=".mp4" />

By doing this, you are essentially overriding the server-level element. In the end, your web.config file should look as shown below:

Overriding the server level mime element with web.config file

Overriding the server level mime element with web.config file

Now refresh the page, and the error should go away. This was just one example of resolving a 500.19 error. If you get a 500 error with a different substatus code, use the same approach to troubleshoot the problem.

Common 500.x substatus codes

The following table covers some of the most common HTTP 500 substatus codes, along with their probable causes and troubleshooting advice:

Subscribe to 4sysops newsletter!

Status Code Probable Cause Troubleshooting Advice
500.11 The application is shutting down on the web server The application pool is shutting down. You can wait for the worker process to finish the shutdown and then try again.
500.12 The application is busy restarting on the web server This is a temporary error and should go away automatically when you refresh the page. If the error persists, something is wrong with the web application itself.
500.13 The web server is too busy This error indicates that the number of incoming concurrent requests exceeded the number that your IIS application can process. This could be caused when the performance settings are not right. To troubleshoot such issues, a memory dump needs to be captured and analyzed using tools such as Debug Diagnostic.
500.15 Direct requests for Global.asax file are not allowed A direct request was made for the Global.asa or Global.asax file, which is not allowed by the web server
500.19 The configuration data is invalid We already covered how to fix this error above
500.21 The module not recognized This status code is caused by a partial installation of the IIS server, such as missing ISAPI modules. To fix this error, identify the missing IIS components and install them.

Once you troubleshoot the problem, don’t forget to disable Failed Request Tracing and revert the detailed errors to custom errors on your web server.

Probably your web.config file is wrong or is missing some tag. I solved my problem using the correct config tags for .NET 4.

<system.web>
    <compilation debug="true" strict="false" explicit="true" targetFramework="4.0">
        <assemblies>
            <add assembly="System.Deployment, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
            <add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            <add assembly="System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
            <add assembly="System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            <add assembly="System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            <add assembly="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
            <add assembly="System.Web.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
            <add assembly="System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            <add assembly="System.Transactions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        </assemblies>
    </compilation>
    <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID">
        <namespaces>
            <clear/>
            <add namespace="System"/>
            <add namespace="System.Collections"/>
            <add namespace="System.Collections.Specialized"/>
            <add namespace="System.Configuration"/>
            <add namespace="System.Text"/>
            <add namespace="System.Text.RegularExpressions"/>
            <add namespace="System.Web"/>
            <add namespace="System.Web.Caching"/>
            <add namespace="System.Web.SessionState"/>
            <add namespace="System.Web.Security"/>
            <add namespace="System.Web.Profile"/>
            <add namespace="System.Web.UI"/>
            <add namespace="System.Web.UI.WebControls"/>
            <add namespace="System.Web.UI.WebControls.WebParts"/>
            <add namespace="System.Web.UI.HtmlControls"/>
        </namespaces>
    </pages>
    <authentication mode="None"/>
</system.web>

You try to load your classic ASP (Active Server Pages) website and all you can see in your browser is the all too familiar display of 500 Internal Server Error.

This page isn't working

WEBSITE is currently unable to handle this request

HTTP ERROR 500

IIS HTTP Error 500 Display on Chrome browser

What is 500 Internal Server Error

First of all, the 500 Internal Server Error is a very general HTTP status code that indicates something has gone wrong on the web server without any specifics on the exact problem.

This instruction is limited to solving a 500 error on IIS server for classic ASP websites, however some other instructions that’s related to IIS in general will help for troubleshooting IIS server for .NET applications as well.

As 500 Server Error message is very often vague, the task now is to find a more specific error message that will help us further analyze and troubleshoot the issue.

Enable Debugging and Send Errors to Browser

If the website is not in a production environment, the easiest way to do it is to enable the ASP Debugging Properties and send the errors to the browser by following these steps:

  1. Launch Internet Information Services (IIS) Manager and on the left pane, select your ASP website and click on the ASP icon (Configure properties for ASP applications).

    IIS settings to configure properties for ASP applications

  2. Under the ASP window, expand the Debugging Properties and set Enable Client-side Debugging, Enable Server-side Debugging, and Send Errors To Browser to True and click Apply.

    IIS ASP Debugging Properties settings to browser

Now, when you refresh your ASP website, you will see a more descriptive error message on your browser such as the following example:

System.Xml error '80131509'

There is an error in the XML document.

/itnota/failed-page.asp, line 289

ASP 500 Error detailed failed page

With this information, you can right away open the file (e.g., itnota/failed-page.asp) and check line number 289. Again, this option is not recommended for a production website that’s still actively used and available for public since it exposes too much information publicly. The ideal way to do it is to replicate your production environment on a staging and try to reproduce the error on a lower environment.

Check IIS Log

Another way to check 500 Internal Server Error for your ASP website is by viewing IIS error logs. This is especially true if your ASP website is a public website.

Where to find the IIS Logs?

By default, the log for your website is stored on %SystemDrive%\inetpub\logs\LogFile, but you should not use this settings for a production environment. Always set a custom path for your logs so your websites are easier to maintain in the long run. If you have a different physical hard drive for logs, even better. Make sure it’s set to Enabled.

IIS Log properties

For the sake of example, the log files are located in folder D:\Logs\ITNota.com:

From the IIS log example below, the easiest way is to look for a pipe character (“|”) on the date and time when the error happens.

IIS Log 500 Error

The error message can be broken down into two parts:

  1. /itnota/failed-page.asp id=2087216&catId=749272

  2. |289|80131509|There_is_an_error_in_the_XML_document.

The first part indicates the problematic file with its parameters which can be reconstructed by replacing the white space with a question mark (“?”) like so:

  /itnota/failed-page.asp?id=2087216&catId=749272

The second part which starts with a pipe character (“|”) is the line number that caused the error, the error code, and the error description:

  |289|80131509|There_is_an_error_in_the_XML_document.

From the above information, we are looking at the following information:

Item Description
Filename /itnota/failed-page.asp
Line number 289
Error code 80131509
Error description There_is_an_error_in_the_XML_document.

Check the affected file by opening it in Visual Studio Code or any IDE.

If you use Visual Studio Code to read and write ASP or VBScript, click here for a way how to colorize your ASP code.

500 internal server error clearly indicates that something went wrong during the display of PHP page.

By default, web servers like IIS return only generic error messages in websites. Often, this causes the masking of real reason for IIS PHP errors such as 500 internal server error.

That’s why, we frequently get request from Windows server owners to find out the reason for PHP website errors and fix them as part of our Server Management Services.

Today, we’ll take a look on how Bobcares’ Engineers track the real reason and fix php 500 internal server error in IIS.

What causes PHP 500 internal server error in IIS

Basically, 500 Internal Server Error is IIS web server’s way of saying, “Something has gone wrong when I tried to display the page. Not sure what.

Now, its time to see the exact reasons for the 500 errors.

1. Permissions Error

From our experience in managing servers, our Windows Experts often see PHP 500 internal server errors due to wrong permissions and ownership on website files. In Windows servers, every file and every folder has its own set of permissions. Again, some permissions are inherited from the parent folders too. And, when the PHP binary do not have enough permissions to execute the scripts, it can result in 500 internal server error.

Similarly, ownership of the files also create problems. In Windows, specific users like IIS User, IIS WP User, etc. should have access on the website folders and files. For example, the IUSR account should have modify permissions on php scripts. And, when there are permission problems, website shows PHP errors.

2. Bad PHP Settings

Yet another reason for PHP internal server error is bad PHP settings. The PHP settings are specified in the configuration file at C:\PHP\PHP.ini. PHP binary take the values from this file while executing scripts.

A classic example will be PHP timeout settings. When the website PHP scripts has to fetch results from external resources, PHP timeout values often cause trouble.  Most system administrators set timeout values in PHP to avoid abuse of the server resources. And, if the PHP script executes for a time longer than the threshold limits, it eventually results in 500 error.

3. PHP module errors

A very few 500 errors happen when the PHP module on the server as such becomes corrupt too. As a result, it results in processing failure of PHP scripts.

Luckily, when the website reports the 500 error due to module failures, IIS often show a more specific error messages like:

500.0 Module or ISAPI error occurred.
500.21 Module not recognized.

How we fixed PHP 500 internal server error in IIS

Fixing PHP 500 internal server error in IIS need a series of steps. Let’s now see how our Dedicated Engineers fixed it for one of our customers and made PHP scripts running.

The customer reported 500 internal server error on WordPress website running in IIS.

1. Turning On Display errors

While the error correctly suggested that PHP had caused 500 error code, it did not provide application-specific information about what caused the error. Therefore, the the first step of investigation was to turn ON display errors option. For this, our Dedicated Engineers followed the steps below.

  1. Using Windows® Explorer, browse to C:\PHP and open the Php.ini file in the PHP installation directory.
  2. Edit and set the display_errors = On directive.
  3. Save the file.
  4. Reset IIS using the command iisreset.exe

After turning on the errors, we reloaded the PHP and it showed a PHP parse error:

Parse error: parse error in C:\inetpub\users\xxx\httpdocs\mysite\error.php on line 3 >>

Often browser settings only show friendly error messages. In such cases, we recommend customer to turn it Off. For example, in Internet Explorer Go to Tools, Internet Options, Advanced tab, and then clear the Show friendly HTTP error messages check box.

Thus, it was a coding error on the PHP script. We suggested script modifications to customer and that fixed the error.

2. Running PHP script locally

Yet another way to find the exact error is to run the problem php script within the server. For this, our Support Engineers connect to the server via rdesktop and execute php script using the php.exe binary. It would show the  DLL’s that are having conflicts and causing the 500 error. We fix these conflicts and make the script working again.

3. Correcting PHP settings

In some cases, we need to correct the PHP settings to get the problem solved. Recently, when a customer reported problems with his website, we had to set the php directive open_basedir correctly to solve 500 Internal Server Error.

Similarly, when PHP cgi scripts show up some warning, IIS7 still displays an HTTP 500 error message. Although the best method is to fix the PHP scripts, often changing the default error handling for FastCGI in IIS7 to “IgnoreAndReturn200” also work as a temporary fix. The exact settings will look as shown.

4. Fixing PHP binary

In some rare cases, the fix may involve complete rebuilding of PHP binary on the server. This happens mainly when the PHP program on the server becomes corrupt. However, in such cases our Dedicated Engineers always check the dependency of the package and do the reinstall. For control panel specific servers, we set the appropriate binary on the server.

[Broken PHP scripts causing big problems? Our IIS experts have the fix for you.]

Conclusion

In a nutshell, PHP 500 internal server error in IIS happens mainly due to reasons like buggy PHP scripts, wrong server settings and many more. Today, we saw the top reasons for the error and how our Support Engineers fix it for customers.

PREVENT YOUR SERVER FROM CRASHING!

Never again lose customers to poor server speed! Let us help you.

Our server experts will monitor & maintain your server 24/7 so that it remains lightning fast and secure.

GET STARTED

var google_conversion_label = «owonCMyG5nEQ0aD71QM»;

  • 7 zip for windows 7 free
  • 80004005 ошибка windows 10 сетевой доступ к сетевой
  • 4 what are windows weaknesses
  • 7 планшет под windows 7
  • 8 zip pro скачать бесплатно для windows 10