2015-04-20 4 views
0

Я хотел бы добавить журнал ошибок в UncaughtExceptionHandlers моей конфигурации ServiceStack AppHost, не мешая реакции. Поведение по умолчанию - не добавление делегата - это для ServiceStack для отображения экрана, который отображает ErrorCode, Message и (в режиме отладки) StackTrace. Однако, когда я добавляю делегата для выполнения некоторых протоколирования, это поведение переопределяется, и вместо этого я получаю пустой экран.Ошибка прохождения через ServiceStack UncaughtExceptionHandler

Я знаю, что у меня есть доступ к ответу и могу писать все, что захочу, но Я бы скорее просто отступил от поведения по умолчанию после того, как выполнил мой журнал. Это возможно?

Воспроизведение этого достаточно просто. Просто создайте исключение во время настройки, например, в GlobalRequestFilters. Прокомментируйте UncaughtExceptionHandlers, чтобы увидеть разницу.

GlobalRequestFilters.Add((req, res, dto) => 
{ 
    throw new Exception("oops"); 
} 

UncaughtExceptionHandlers.Add((req, res, operationName, ex) => 
{ 
    //anything that doesn't throw a new exception 
} 

я могу бросить исключение внутри делегата, чтобы получить YSOD вместо пустого экрана, но это явно не по умолчанию, а также записывается в журнал событий, который был бы излишним в моем случае.

ответ

1

Это должно теперь провалиться, чтобы использовать поведение по умолчанию, если httpRes не был закрыт в последнем v4.0.40 of ServiceStack, который был только что выпущен.

+0

Так рада, что это было не «... только что выпущенная на прошлой неделе (так что вы должны были уже обновить)». Благодаря! –

Смежные вопросы