Razor.Parse需要很长时间才能首先解析每个http请求(Asp.Net MVC)

时间:2013-04-16 17:43:51

标签: asp.net-mvc asp.net-mvc-3 razor razor-2

我正在使用RazorEngine来解析模板,使用以下内容:

string parsedText = Razor.Parse(template, model, "cache");

首先,如果我没有将第3个参数指定为'cache',那么对这个方法的任何调用都需要500到1000毫秒,这是很多,因为这是经常调用的。一旦传递了该参数,第一次需要500-1000ms,但任何后续调用都需要可以忽略的时间(0-1ms)。

这是在Asp.Net MVC Web应用程序的上下文中执行的。但是,一旦请求刷新,这将首次需要500-1000毫秒。

任何想法为什么需要这么长时间,以及可以做些什么?

我使用的是RazorEngine 3.2.0.0和.Net 4.5。

2 个答案:

答案 0 :(得分:1)

请求需要很长时间,因为必须编译剃刀页面......

阅读此Precompiling razor page

您好

答案 1 :(得分:0)

问题是第三个参数 - cacheName。每个唯一模板必须是唯一的缓存键。

我每次都根据模板将其更改为另一个,现在它正在以完美而快速的方式运行。

问题是我只使用一个模板进行单元测试,但在实际环境中,模板正在发生变化。缓存名称密钥是静态的,因此模板缓存始终无效。