剃刀异常

时间:2013-02-07 09:58:34

标签: razor servicestack

我毫无疑问设置了一些错误但经常我的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 个答案:

答案 0 :(得分:2)

我遇到了类似的问题。我找到了最简单的"找出错误的方法是下载所有服务堆栈,构建剃刀库的调试版本并将其链接到我的项目中。然后,我在ServiceStack.Razor.Templating.TemplateService.CreateTemplate方法中设置了一个断点,并且能够看到完整的异常详细信息。从那里我了解到我在我的剃刀页面中包含了一个未在我的项目中引用的导入。

因为我解决了这个问题所以它非常可靠。

答案 1 :(得分:2)

我自己也遇到了麻烦,因为ServiceStack吞噬了异常,正如你所说,日志没有显示Errors集合。有两种方法可以获取这些信息:

  1. 在Visual Studio的调试选项中取消选中启用我的代码调试 - > 选项和设置)。如果您已在调试 - >>中检查投掷 公共语言运行时例外 例外,您将获得例外情况,并能够查看错误集合。

  2. 几天前
  3. A merge was committed到ServiceStack存储库,这使得它记录了Errors集合。 Demis Bellot显然经常将新版本推送到NuGet,所以它可能会在一两个星期内推出。

答案 2 :(得分:1)

我遇到了同样的问题。我的情况是,我删除了项目中引用的一些库,但是对它们的引用仍然存在(事件我认为删除了它,但无论如何),这就是问题所在。 在我删除了对项目中不再存在的库的引用之后,它立即起作用。