Исключение из бритвы

Я, несомненно, поставил что-то не так, но часто получаю исключения, созданные моими шаблонами Razor, хотя проблем с шаблонами нет. Обычно они фиксируются, когда я делаю сборку.

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

Ошибки в моем журнале не все, что полезно (см. Ниже).

Можно ли избежать ложных ошибок и получить лучшую информацию, если есть проблема?

ServiceStack.Razor.Templating.TemplateCompilationException: Unable to compile template. Check the Errors list for details.
   at ServiceStack.Razor.Templating.TemplateService.CreateTemplate(String template, Type modelType)
   at ServiceStack.Razor.Templating.TemplateService.Compile(ViewPageRef viewPageRef, String template, Type modelType, String name)
   at ServiceStack.Razor.Templating.TemplateService.Compile(ViewPageRef viewPageRef, String template, String name)
   at ServiceStack.Razor.ViewPageRef.Compile(Boolean force)
3
nl ja de

3 ответы

У меня были проблемы с этим самим, потому что ServiceStack проглотил исключения, и журналы, как вы сказали, не показывают коллекцию Errors. Существует два способа получить эту информацию:

  1. Uncheck Enable Just My Code in the debugging options in Visual Studio (Debug -> Options and Settings). If you have checked Thrown for Common Language Runtime Exceptions in Debug -> Exceptions, you will get the exceptions, and be able to view the Errors collection.

  2. A merge was committed some days ago to the ServiceStack repository, which makes it log the Errors collection. Demis Bellot apparently pushes new versions to NuGet fairly often, so it'll probably be there in a week or two.

2
добавлено

У меня были подобные проблемы. Я нашел «самый простой» способ выяснить, в чем была ошибка: загрузить весь стек сервисов, построить отладочную версию бритвенной библиотеки и связать ее с моим проектом. Затем я установил точку останова в методе ServiceStack.Razor.Templating.TemplateService.CreateTemplate и смог увидеть полные сведения об исключении. Оттуда я узнал, что включил импорт на мою страницу бритвы, на которую не ссылался мой проект.

Поскольку я решил это, он был очень надежным.

2
добавлено

У меня такая же проблема. И в моем случае я удалил некоторые библиотеки, на которые ссылается в проекте, но ссылка на них осталась (eventhought, я думаю, удалил ее, но в любом случае), и это была проблема. После того, как я удалил ссылки на библиотеки, которые больше не используются в проекте, он работал немедленно.

1
добавлено