Я пишу методы с помощью метода try {stuff} catch (Exception e) {log, Прочие вещи}, поэтому я пытался выяснить, как создать атрибут, чтобы помочь мне.Я довольно подробно проверил следующие потоки и, похоже, не могу заставить мою реализацию работать. Атрибут
, похоже, не работает вообще
ASP.NET MVC Controller.OnException не вызывается
.net Атрибуты, которые обрабатывают исключения - использование в методе доступа к свойству
Моя сеть верхнего уровня.config имеет значение
<customErrors mode="On" defaultRedirect="/error.html"/>
, и я компилирую в режиме без отладки.Мой атрибут ниже:
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = true, Inherited = true)]
public class SafeWebMethodAttribute: ActionFilterAttribute, IExceptionFilter
{
public void OnException(ExceptionContext filterContext)
{
filterContext.ThrowIfNull();
if (filterContext.ExceptionHandled)
{
return;
}
Log.LogException(filterContext.Exception);
filterContext.HttpContext.Response.StatusCode = 500;
filterContext.HttpContext.Response.Write(filterContext.Exception);
filterContext.ExceptionHandled = true;
}
}
, и я звоню здесь -
public class Test : Controller
{
[SafeWebMethod]
public ActionResult Test()
{
throw new ArgumentException("test");
}
}
Я не могу получить удар по точке останова в атрибутеили если я изменю код состояния, чтобы он появился.
Я также скопировал код из атрибута [HandleError], и там тоже не могу установить точку останова, поэтому я думаю, что с моей конфигурацией что-то не так, но я не могу понять, что,
Буду признателен за любые мысли или идеи