Моя задача - зарегистрировать исключение и страницу, не найденную в нашей базе данных, из проекта Kentico. Если страница не найдена, мне нужно нажать на событие «CMSRequestEvents.End.After». Это событие получает аргументы отправителя и события. Как мне взломать аргументы событий и найти страницу, не найденную похожей информацией? Поскольку это событие запускается для всех запросов, мне нужно обработать только «страница не найдена» и зарегистрировать ее. SystemEvents.Exception.Execute
запускается, когда возникает исключение, и страница не найдена не является исключением. Мы используем Kentico версии 7.
[CustomHandleError]
public partial class CMSModuleLoader
{
private class CustomHandleErrorAttribute : CMSLoaderAttribute
{
/// <summary>
/// Called automatically when the application starts
/// </summary>
public override void Init()
{
// Assign custom handlers to the appropriate events
SystemEvents.Exception.Execute += System_Exception_Execute;
CMSRequestEvents.End.After += Request_End_After;
}
private void System_Exception_Execute(object sender, SystemEventArgs e)
{
try
{
var exception = e.Exception;
var errorloggerHelper = new ErrorLoggerHelper();
errorloggerHelper.LogError(exception);
}
catch
{
//do nothing
}
}
private void Request_End_After(object sender, EventArgs e)
{
//since this gets called for each request, HANDLE only "page not found" and log
}
}
}