2015-04-16 23 views
1

在尝试解析简单的HTML页面时,我们得到的表达式太长或者错误复杂。 以下是错误:Razor引擎模板解析错误 - 表达式编译太长或者过于复杂

System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> RazorEngine.Templating.TemplateCompilationException: Unable to compile template. An expression is too long or complex to compile

Other compilation errors may have occurred. Check the Errors property for more information. at RazorEngine.Compilation.DirectCompilerServiceBase.CompileType(TypeContext context) in c:_git\RazorEngine\src\Core\RazorEngine.Core\Compilation\DirectCompilerServiceBase.cs:line 100 at RazorEngine.Templating.TemplateService.CreateTemplateType(String razorTemplate, Type modelType) in c:_git\RazorEngine\src\Core\RazorEngine.Core\Templating\TemplateService.cs:line 256 at RazorEngine.Templating.TemplateService.CreateTemplate(String razorTemplate, Type templateType, Object model) in c:_git\RazorEngine\src\Core\RazorEngine.Core\Templating\TemplateService.cs:line 127 at RazorEngine.Templating.TemplateService.Parse(String razorTemplate, Object model, DynamicViewBag viewBag, String cacheName) in c:_git\RazorEngine\src\Core\RazorEngine.Core\Templating\TemplateService.cs:line 435 at RazorEngine.Razor.Parse[T](String razorTemplate, T model) in c:_git\RazorEngine\src\Core\RazorEngine.Core\Razor.cs:line 263

+0

这将有助于看到简单的页面:) –

+0

或告诉我们你做了什么不是标准的,额外的Nuget包例如? – DavidG

+0

没有做任何不标准的事情。有趣的是我写了另一个应用程序,它只是解析相同的页面,它工作正常。所以现在我不确定它是解析导致错误还是我传递的内容太复杂了?任何想法对于剃刀分析来说可能太长或太复杂了?有没有限制? –

回答

0

这是通过首先使用Razor.Compile然后Razor.Run解决。当你使用Razor.Parse时,它会创建一个dll文件,并且永远不会处理它。我们正在服务器上进行压力测试,最终导致数百万由Razor在Temp文件夹中创建的未知dll文件。通过首先使用编译你只创建一个dll文件。 Razor.Run将只使用编译模板和解析模板。