CustomErrors mode = "Off" - PullRequest
       94

CustomErrors mode = "Off"

242 голосов
/ 19 сентября 2008

Я получаю сообщение об ошибке каждый раз, когда загружаю свое веб-приложение провайдеру. Из-за режима customErrors все, что я вижу, - это сообщение об ошибке «Runtime error» по умолчанию, предлагающее мне отключить customErrors, чтобы больше узнать об ошибке.

Раздраженный, я установил свой web.config так:

<?xml version="1.0"?>
<configuration>
    <system.web>
        <customErrors mode="Off"/>
    </system.web>
</configuration>

и все же, все, что я получаю, - это глупая страница удаленных ошибок без полезной информации. Что еще я могу сделать, чтобы выключить customErrors!?

Ответы [ 29 ]

154 голосов
/ 09 декабря 2008

Последние несколько дней это сводило меня с ума, и я не мог обойти это, но, наконец, понял:

В моем файле machine.config у меня была запись под <system.web>:

<deployment retail="true" />

Кажется, это переопределяет любые другие настройки customError, которые вы указали в файле web.config, поэтому установите для приведенной выше записи значение:

<deployment retail="false" />

теперь означает, что я могу снова увидеть подробные сообщения об ошибках, которые мне нужны.

machine.config расположен по адресу

32-бит

%windir%\Microsoft.NET\Framework\[version]\config\machine.config

64-разрядный * 1 021 *

%windir%\Microsoft.NET\Framework64\[version]\config\machine.config 

Надеюсь, что это поможет кому-то там и сэкономит несколько часов прическе.

134 голосов
/ 19 сентября 2008

«Выкл.» Чувствительна к регистру.

Проверьте, есть ли буква "O" в верхнем регистре в вашем файле web.config, я несколько раз страдал от этого (так просто, как кажется)

48 голосов
/ 21 мая 2009

В интересах добавления большего количества ситуаций к этому вопросу (потому что это то, куда я смотрел, потому что у меня была точно такая же проблема), вот мой ответ:

В моем случае я вырезал / вставил текст из общей ошибки, которая говорит, что если вы хотите увидеть, что не так, введите

<system.web>
   <customErrors mode="Off"/>
</system.web>

Так что это должно было исправить это, но, конечно, нет! Моя проблема заключалась в том, что был узел на несколько строк выше (перед узлом компиляции и аутентификации) и закрывающий тег на несколько строк ниже. Как только я исправил это, хорошо, проблема решена. Что я должен был сделать, это скопировать / вставить только эту строку:

<customErrors mode="Off"/>

Это из летописи глупых вещей, которые я продолжаю делать снова и снова, в главе, озаглавленной «Скопируйте и вставьте свой путь к разрушению».

10 голосов
/ 02 ноября 2011

Для приложений Sharepoint 2010 вы также должны отредактировать C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\web.config и определить <customErrors mode="Off" />

7 голосов
/ 20 мая 2015

Единственный ответ, который действительно сработал, чтобы исправить это, я нашел здесь: https://stackoverflow.com/a/18938991/550975

Просто добавьте это к своему web.config:

<configuration>  
  <system.webServer>  
    <httpErrors existingResponse="PassThrough"/>  
  </system.webServer>  
<configuration>
6 голосов
/ 20 сентября 2008

Обычно вы можете найти дополнительную информацию об ошибке в средстве просмотра событий, если у вас есть доступ к ней. Возможно, ваш провайдер вообще предотвратил отображение пользовательских ошибок, либо переопределив их в своем machine.config, либо установив для атрибута retail значение true (http://msdn.microsoft.com/en-us/library/ms228298(VS.80).aspx).

6 голосов
/ 08 января 2009

Я пробовал большинство вещей, описанных здесь. Я использовал VWD, и файл web.config по умолчанию содержал:

    <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
        <error statusCode="403" redirect="NoAccess.htm" />
        <error statusCode="404" redirect="FileNotFound.htm" />
    </customErrors>

Я изменил mode = "RemoteOnly" на mode = "Off". Все еще нет радости. Затем я использовал диспетчер IIS, свойства, вкладку ASP.Net, редактирование конфигурации, затем выбрал вкладку CustomeErrors. Это все еще показывало RemoteOnly. Я изменил это значение на Off и, наконец, я смог увидеть подробные сообщения об ошибках.

Когда я проверял web.config, я увидел, что в system.web есть два узла CustomErrors; и я только что заметил, что вторая запись (которая менялась, была внутри комментария). Поэтому старайтесь не использовать блокнот для проверки файла web.config на удаленном сервере.

Однако, если вы используете конфигурацию IIS, он будет жаловаться на ошибки в файле web.config. Затем вы можете исключить все ответы, в которых говорится, "есть ли синтаксическая ошибка XML в вашем файле web.config"

5 голосов
/ 19 сентября 2008

Если вы все еще получаете эту страницу, вполне вероятно, что она взорвалась, прежде чем пройти через Web.Config

Убедитесь, что ASP.Net имеет необходимые разрешения для таких вещей, как папки .Net Framework, метабаза IIS и т. Д. Есть ли у вас какой-либо способ проверить, правильно ли установлен ASP.Net и правильно ли он связан с IIS?

Редактировать: После того, как Грег прокомментировал это, я предположил, что то, что вы опубликовали, было вашим очень минимальным web.config, есть что-то еще? Если да, можете ли вы опубликовать весь web.config?

5 голосов
/ 07 марта 2017

Моя проблема заключалась в том, что я определил это в моем файле web.config

<httpErrors errorMode="Custom" existingResponse="Replace">
  <remove statusCode="404" />
  <remove statusCode="500" />
  <error statusCode="404" responseMode="ExecuteURL" path="/Error/NotFound" />
  <error statusCode="500" responseMode="ExecuteURL" path="/Error/Internal" />
</httpErrors>
5 голосов
/ 17 января 2011

У меня тоже была эта проблема, но при использовании Apache и mod_mono. Для всех, кто находится в такой ситуации, вам нужно перезапустить Apache после изменения web.config, чтобы заставить читать новую версию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...