Внедрение страницы пользовательской ошибки на веб-сайте ASP.Net
У меня есть сайт ASP.Net, и я хочу использовать страницу пользовательских ошибок. Я поместил следующий код в свой web.config
<customErrors mode="On" defaultRedirect="~/error.aspx">
<error statusCode="404" redirect="~/error.aspx" />
</customErrors>
Проблема в том, что когда я перехожу к URL-адресу, который не существует, по-прежнему используется страница ошибки 404, указанная в диспетчере IIS.
Вопрос: Как я могу использовать страницу error.aspx, которую я создал? Почему настройки в диспетчере IIS переопределяют web.config?
Ответы
Ответ 1
Попробуйте этот путь, почти такой же.. но это то, что я сделал, и работаю.
<configuration>
<system.web>
<customErrors mode="On" defaultRedirect="apperror.aspx">
<error statusCode="404" redirect="404.aspx" />
<error statusCode="500" redirect="500.aspx" />
</customErrors>
</system.web>
</configuration>
или попробуйте изменить страницу ошибки 404 из настроек IIS, если это необходимо срочно.
Ответ 2
Существует 2 способа настройки пользовательских страниц ошибок для сайтов ASP.NET:
- Диспетчер информационных служб Интернета (IIS)
- файл web.config
В этой статье объясняется, как сделать каждый:
Причина, по которой ваша страница error.aspx не отображается, может быть в том, что в вашем файле web.config есть ошибка. Попробуйте это вместо:
<configuration>
<system.web>
<customErrors defaultRedirect="error.aspx" mode="RemoteOnly">
<error statusCode="404" redirect="error.aspx"/>
</customErrors>
</system.web>
</configuration>
Возможно, вам потребуется убедиться, что Error Pages
в IIS Manager - делегирование компонентов установлены на чтение/запись:
![IIS Manager: Feature Delegation panel]()
Кроме того, этот ответ может помочь вам настроить файл web.config:
Ответ 3
<customErrors defaultRedirect="~/404.aspx" mode="On">
<error statusCode="404" redirect="~/404.aspx"/>
</customErrors>
Код выше предназначен только для "Ошибка страницы не найден-404", если известно расширение файла (.html,.aspx и т.д.)
Кроме того, вы также установили ошибки клиента для расширения, не известные или неверные, как
.aspwx
или .vivaldo
. Вы должны добавить настройки httperrors
в web.config
<httpErrors errorMode="Custom">
<error statusCode="404" prefixLanguageFilePath="" path="/404.aspx" responseMode="Redirect" />
</httpErrors>
<modules runAllManagedModulesForAllRequests="true"/>
он должен находиться внутри <system.webServer>
</system.webServer>
Ответ 4
<system.webServer>
<httpErrors errorMode="DetailedLocalOnly">
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="404" prefixLanguageFilePath="" path="your page" responseMode="Redirect" />
</httpErrors>
</system.webServer>
Ответ 5
Это орфографическая ошибка в вашем закрывающем теге, т.е.
</CustomErrors> instead of </CustomError>?