customErrors with redirectMode="ResponseRewrite" не работают на виртуальном хостинге

Я пытаюсь настроить пользовательские страницы ошибок для своего сайта (ASP.NET 4, интегрированный конвейер).

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

Если я изменю redirectMode="ResponseRewrite" в redirectMode="ResponseRedirect" все работает нормально на локальной и общей машине.

error.aspx это настоящий файл, который находится рядом с web.config файл (в корне сайта). Сайт не имеет Global.asax файл.

Локальная машина работает под управлением IIS 7.5, я не использую маршрутизацию (по крайней мере, сознательно), и общий хостинг говорит, что Server: Microsoft-IIS/7.5 X-AspNet-Version: 4.0.30319

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

Вот выдержка из моего web.config файл:

<system.webServer>
    <httpErrors errorMode="Custom">
        <remove statusCode="404" />
        <error statusCode="404" path="/error.aspx" responseMode="ExecuteURL" />      
    </httpErrors>
</system.webServer>
<system.web>
    <customErrors mode="On" defaultRedirect="error.aspx" redirectMode="ResponseRewrite">
        <error statusCode="404" redirect="~/error.aspx"/>
    </customErrors>
    <httpRuntime requestValidationMode="2.0" />
</system.web>

2 ответа

Решение

После долгого разговора с хостинг-провайдером выяснилось, что:

  • мой подход в порядке
  • но это не будет работать, как ожидалось, потому что хостинг-провайдер отключил такую ​​возможность через machine.config,

Таким образом, никогда не стоит недооценивать количество ошибок провайдера.

У меня есть следующий комментарий в моем web.config:

для IIS 7.5 используйте errorMode="Custom"; используйте responseMode="ExecuteURL", если используется маршрутизация, в противном случае используйте responseMode = "Redirect"

Только не проси меня объяснить, потому что я не знаю! Я просто разобрался методом проб и ошибок.

Другие вопросы по тегам