Изменение страницы Unhandled Exception (/_layouts/error.aspx)
В продолжение темы про интернет сайты создаваемые на MOSS 2007 и необходимость замены всех страниц, которые только могут увидеть пользователи, я покажу как можно переопределить стандартную страницу отображения ошибок error.aspx
Речь идет про переопределение вот этой, знакомой всем, страницы:

Переопределние производится в три шага:
1. Разработать IHttpModule и перекрыть событие Error
2. Создать страницу myerrorpage.aspx в папке 12\Template\Layouts. Создать можно скопировав и переименовав error.aspx
3. В web.config в секции httpmodules объявить модуль:
<httpModules>
<clear />
<add name="ExceptionEventHandler" type="MyProject, MyProject.ExceptionEventHandler,
Version=1.0.0.0, Culture=neutral,PublicKeyToken=34a2bd01f6f6eb10" />
Ниже приведен код модуля:
using System;
using
System.Web;
using
System.Web.UI;
namespace
MyProject
{
/// <summary>
/// Модуль для переопределения страницы Unhandled exception
/// </summary>
public class ExceptionEventHandler : IHttpModule
{
public void Init(HttpApplication context)
{
context.Error +=
new EventHandler(context_Error);
}
void context_Error(object sender, EventArgs e)
{
Exception[] unhandledExceptions = HttpContext.Current.AllErrors;
foreach (Exception ex in unhandledExceptions)
{
// логировать ошибки
}
HttpContext.Current.Server.ClearError();
HttpContext.Current.Response.Clear();
HttpContext.Current.Server.Transfer("/_layouts/myerrorpage.aspx");
}
public void Dispose()
{
}
}
}