Я понимаю, как создать страницу пользовательских ошибок. Существует много примеров того, как это сделать, например, в ссылке выше.
Ни один из примеров, которые я нашел, показывает, как делать то, что я делаю после.
У меня есть веб-приложение, которое использует главную страницу.
На моей главной странице у меня есть элемент управления Label для ошибок, которые будут отображаться на всех страницах:
<h4 id="bannerError"><asp:Label ID="lblError" runat="server" /></h4>
В коде на этой главной странице у меня есть следующее:
public void Page_Error(object sender, EventArgs e) {
var err = Server.GetLastError().GetBaseException();
ErrorMessage = String.Format("URL {0}: {1} Error: {2}", Request.Url, err.GetType(), err.Message);
Server.ClearError();
}
public string ErrorMessage {
get { return lblError.Text; }
set {
LogError(value);
lblError.Text = value;
}
}
ErrorMessage
- свойство. Мои другие страницы могут легко получить к нему доступ, и я легко мог отредактировать часть о записи ошибки в нашу базу данных сервера.
Конфигурация страницы Web.config
(фрагмент):
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0"/>
<customErrors defaultRedirect="Default.aspx" mode="On">
<error statusCode="403" redirect="Default.aspx" />
<error statusCode="404" redirect="Default.aspx" />
</customErrors>
</system.web>
</configuration>
Как мне отредактировать мои файлы, чтобы любые ошибки, возникающие на любой из моих страниц в моем приложении (которые были получены на главной странице), просто отображали эту основную информацию через главную страницу, а не перенаправляли страницу на другой URL?