TLDR: сначала определите, откуда в конвейере вы получаете ошибку (прокрутите, ища скриншоты чего-то, что напоминает вашу ошибку), внесите изменения, чтобы получить что-то новое, повторите.
Сначала определите, какое сообщение об ошибке вы видите на самом деле.
Если вы видите файл, расположенный здесь ...
% SystemDrive% \ Inetpub \ custerr \\ 500.htm
... который обычно выглядит так:
![IIS Default 500 error](https://i.stack.imgur.com/o3G6V.jpg)
... тогда вы знаете, что видите текущую настроенную страницу ошибки в ** IIS **, и вам НЕ нужно изменять настройку customErrors, подробности об ошибке asp или «показать дружественные ошибки http "настройка браузера.
Возможно, вы захотите взглянуть на вышеуказанный путь вместо того, чтобы доверять моему скриншоту на тот случай, если кто-то его изменил.
«Да, я вижу вышеописанную ошибку ...»
В этом случае вы видите настройку <<a href="https://www.iis.net/configreference/system.webserver/httperrors" rel="noreferrer"> httpErrors > или в IIS Manager это Страницы ошибок -> Изменить настройки функций. По умолчанию для этого используется errorMode = DetailLocalOnly на уровне серверного узла (в отличие от уровня сайта) , что означает, что, пока вы будете видеть эту настроенную страницу ошибок, будучи удаленной, вы сможете локально войти в сервер и увидеть полную ошибку, которая должна выглядеть примерно так:
![Detailed HTTP Error](https://i.stack.imgur.com/HZDFa.jpg)
У вас должно быть все, что вам нужно, чтобы исправить текущую ошибку.
"Но я не вижу подробной ошибки даже при просмотре на сервере"
Это оставляет пару возможностей.
- Браузер, который вы используете на сервере, настроен на использование прокси
в настройках соединения, поэтому он не рассматривается как "локальный".
- Вы на самом деле не просматриваете сайт, на котором, как вы думаете, вы его просматриваете - это обычно происходит, когда задействован балансировщик нагрузки. Выполните проверку ping, чтобы узнать, дает ли dns IP-адрес на сервере или где-то еще.
- Настройки вашего сайта httpErrors установлены только для "Пользовательского". Измените его на «DetailLocalOnly». Однако, если у вас есть ошибка конфигурации, это может не сработать, поскольку httpErrors уровня сайта также является элементом конфигурации. В этом случае перейдите к # 4
- По умолчанию для httpErrors для всех сайтов установлено значение «Пользовательский». В этом случае вам нужно щелкнуть по узлу сервера верхнего уровня в диспетчере IIS (а не по конкретному сайту) и изменить настройки httpErrors там на DetailLocalOnly. Если это внутренний сервер и вы не беспокоитесь о разглашении конфиденциальной информации, вы также можете установить для него значение «Подробно», что позволит вам увидеть ошибку от клиентов, отличных от сервера.
"Вход на сервер для меня не вариант"
Измените httpErrors вашего сайта на "Подробно", чтобы вы могли видеть его удаленно. Но если это не сработает, ваша ошибка уже может быть ошибкой конфигурации, см. № 3 непосредственно выше. Так что, возможно, вы застряли на # 4, и вам понадобится кто-то из вашей серверной команды.
"Я не вижу страницу ошибки, описанную выше. Я вижу что-то другое"
Если вы видите это ...
![enter image description here](https://i.stack.imgur.com/mQTje.jpg)
... и вы ожидаете увидеть что-то подобное ...
![enter image description here](https://i.stack.imgur.com/EggL7.jpg)
... тогда вам нужно изменить "Отправить ошибки браузеру" на true в IIS Manager, в разделе Сайт -> IIS -> ASP -> Свойства отладки
Если вы видите это ...
![ie friendly errors 1](https://i.stack.imgur.com/oOnS5.gif)
или это ...
![ie friendly errors 2](https://i.stack.imgur.com/tmyKV.jpg)
... вам нужно отключить дружественные ошибки в вашем браузере или использовать веб-просмотр fiddler, чтобы посмотреть фактический ответ против того, что ваш браузер хочет показать вам.
Если вы видите это ...
![Custom errors enabled](https://i.stack.imgur.com/HAD9s.jpg)
... тогда пользовательские ошибки работают, но у вас нет пользовательской страницы ошибок (конечно, в этот момент речь шла о .net, а не о классическом asp). Вам необходимо изменить тег customErrors в файле web.config на RemoteOnly для просмотра на сервере или Off для удаленного просмотра.
Если вы видите что-то в стиле вашего сайта, то, скорее всего, пользовательские ошибки включены или RemoteOnly, и он отображает пользовательскую страницу (например, Views-> Shared-> Error.cshtml в MVC). Тем не менее, маловероятно, но возможно, что кто-то изменил страницы в IIS для httpErrors, так что смотрите первый раздел об этом.