3

毫无疑问,我设置了一些错误,但我的 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)
4

3 回答 3

2

我自己也遇到了麻烦,因为 ServiceStack 吞下了异常,并且正如您所说,日志不显示 Errors 集合。有两种方法可以获取该信息:

  1. 在 Visual Studio 的调试选项中取消选中Enable Just My Code (调试->选项和设置)。如果您在Debug -> Exceptions中检查了Thrown for Common Language Runtime Exceptions,您将获得异常,并能够查看 Errors 集合。

  2. 几天前向 ServiceStack 存储库提交了一次合并,这使得它记录了错误集合。Demis Bellot 显然经常向 NuGet 推送新版本,因此它可能会在一两周内推出。

于 2013-04-07T22:22:40.850 回答
2

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

自从我解决了这个问题以来,它非常可靠。

于 2013-02-07T14:41:05.813 回答
1

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

于 2014-02-07T12:10:04.453 回答