Umbraco CMS (.NET): ошибки регистрации загрузки XSLT / пользовательских элементов управления

StackOverflow https://stackoverflow.com/questions/3809618

  •  25-09-2019
  •  | 
  •  

Вопрос

Мне было интересно, есть ли путь в Umbraco для регистрации ошибок, которые мы получаем, когда он не загружает XSLT или пользовательский элемент управления. Как правило, он показывает красную коробку, говоря, что он не может загрузить контроль и прочее. Есть ли способ правильно войти в систему?

Заранее спасибо.

Это было полезно?

Решение

Во-первых, это на самом деле не поддерживается ... Когда ошибки возникают, выводит HTML и записывает в журнал трассировки ASP.NET.

Вот как я бы подошел к этому. Большинство моих установок Umbraco используют Elmah для регистрации исключений и LOG4NET для регистрации приложений. Это должно дать вам какие-либо ошибки на выходе.

using System;
using System.Linq;
using System.Web;

public class MacroLogging : IHttpModule {

    public void Init(HttpApplication context) {
        context.LogRequest += ContextLogRequest;
    }

    static void ContextLogRequest(object source, EventArgs e) {
        var app = (HttpApplication)source;
        var context = app.Context;
        context.Trace.TraceFinished += TraceFinished;
    }

    static void TraceFinished(object sender, TraceContextEventArgs e) {
        var records = e.TraceRecords.Cast<TraceContextRecord>();
        var categoryTypes = new[] {"Macro", "macro", "umbracoMacro"};
        var traceOutput = records.Where(p => categoryTypes.Contains(p.Category) && p.IsWarning)));
        foreach (var entry in traceOutput) {
            //Your Output entry.Message
        }
    }

    public void Dispose() {}

}

Просто добавьте модуль на ваш web.config. Мне не тестируют, как это 1 утра :) Но общая концепция должна работать.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top