2015-04-16 31 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將只使用編譯模板和解析模板。