Вопрос по asp.net – CustomErrors mode = «Off»

238

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

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

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

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

попробуйте добавить@Model.Exception.Message кShared/Error.cshtml Muflix
В общем, следите за преобразованиями конфигурации (например, Web.Debug.config, который может изменить это значение) и следите за дублирующими определениями этого раздела / свойства в файле (в данном случае это явно не проблема) Graham

Ваш Ответ

27   ответов
0

Я положил его к концу узла и не работал.

1

-

Что я сделал, я открылAdvanced Settings дляApplication Pool вIIS Manager.

Там я поставилEnable 32-Bit Applications вTrue.

5

<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>
Замена для<httpErrors errorMode="Detailed" помогает в качестве примера
1

а asp.net по умолчанию была 1.1, когда я пытался запустить веб-приложение 2.0. Ошибка была довольно тривиальной, но не сразу было понятно, почему пользовательские ошибки не исчезнут, и время выполнения никогда не записывалось в журнал событий. Очевидным исправлением было соответствие версии на вкладке Asp.Net в IIS.

Error: User Rate Limit Exceeded
1

а не удалить его), и если вы по-прежнему получаете то же сообщение об ошибке, убедитесь, что вы объявили customErrors только один раз в файле web.config, или что-то в этом роде. Ошибки в файле web.config могут иметь некоторые странные последствия для приложения.

правда, я не знаю, почему я предложил app_offline для сброса приложения. :)
каждый раз, когда вы изменяете web.config, веб-сайт перезапускается, нет необходимости создавать app_offline.htm!
0

и причина была в том, что IIS работал на ASP.NET 1.1, а на сайте требовался .NET 2.0.

Сообщение об ошибке ничего не сделало, но сбило меня с пути в течение нескольких часов.

5

вероятно, она взорвалась, прежде чем пройти через Web.Config.

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

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

Несколько раз, когда я сталкивался с этой проблемой, это было ошибкой в файле web.config - определенно пройдитесь по нему сначала с помощью зубчатого гребня.
Часто эту ошибку можно найти только в журнале событий системы / безопасности (до IIS 7), но в большинстве случаев проблема заключается в простом доступе к журналу событий.
У пользователя в используемом пуле приложений не было разрешений на чтение каталога, в который было развернуто мое приложение. До сих пор не могу понять, почему я не смог получить ошибку, чтобы показать, что я знаю, в чем проблема.
Да, недоволен. Я переопределил свой web.config для этого минимального значения. Все еще нет радости Radu094
6

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

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

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

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

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

Error: User Rate Limit Exceeded
128

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

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
6

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

152

и я не мог обойти это, но, наконец, понял это:

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

<deployment retail="true" />

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

<deployment retail="false" />

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

machine.config находится по адресу

32-bit

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

64-bit

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

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

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceededweblogs.asp.net/lasse/archive/2009/04/28/…
0

Application_Error Метод имел это:

Server.ClearError();
Response.Redirect("/Home/Error");

Удаление этих строк и установка исправили проблему. (Клиент все еще был перенаправлен на страницу ошибки сcustomErrors="On").

0

и я просмотрел журнал приложения просмотра событий, где четко указывалось, из-за какого исключения это произошло. В моем случае исключение было, как показано ниже ...

Информация об исключении:

Exception type: HttpException 
Exception message: The target principal name is incorrect.  Cannot generate SSPI context.
at System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode(HttpContext context, HttpApplication app)
at System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers)
at System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context)
at System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context)
at System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext)

The target principal name is incorrect.  Cannot generate SSPI context.

Я только что обновил свой пароль в пуле приложений, и он работает для меня.

0

оего сервера он исчез.

7

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

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

<configuration>  
  <system.webServer>  
    <httpErrors existingResponse="PassThrough"/>  
  </system.webServer>  
<configuration>
Error: User Rate Limit Exceeded<httpErrors errorMode="Detailed" />Error: User Rate Limit Exceeded
0

вам также может потребоваться удалить следующую строку из соответствующего файла web.config.

<compilation xdt:Transform="RemoveAttributes(debug)" />
1

анимаюсь разработкой ASP.NET, но я помню, что в настраиваемых ошибках есть настройка только для отображения полного текста ошибки на сервере в качестве меры безопасности.

1

в дереве каталогов веб-сайта? Проверьте любые родительские файлы web.config для других настроек, если таковые имеются. Также сделайте так, чтобы ваш каталог устанавливался как каталог приложений в IIS.

2

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

0

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

47

отому что это то, куда я смотрел, потому что у меня была точно такая же проблема), вот мой ответ:

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

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

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

<customErrors mode="Off"/>

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

Error: User Rate Limit Exceededstackoverflow.com/questions/30471043/…Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
1

& # xF8; & # xE5; в вашем web.config? Если это так, убедитесь, что кодировка установлена в utf-8.

2

что у пользователя IIS не было доступа к конфигурации компьютера на веб-сервере.

5

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

0

что вы редактируете web.config, а не website.config, как я делал.

1

это может произойти, поскольку вы используете HandleErrorAttribute. Поведение изменилось в 5, так что оно не обрабатывает исключения, если вы отключаете пользовательские ошибки.

2

и в нашем случае это произошло из-за того, что у пользователя пула приложений больше не было разрешений на файл web.config. Причина, по которой он потерял свои разрешения (раньше все было нормально), заключалась в том, что у нас была резервная копия сайта в файле rar, и я перетащил резервную копию файла web.config из rar на сайт. Это, похоже, удалило все разрешения на файл web.config, кроме меня, вошедшего в систему пользователя.

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

Похожие вопросы