RazorEngine:Razor.Parse每隔一段时间抛出一次FileNotFoundException

时间:2017-06-13 12:41:55

标签: c# razor razorengine

我遇到 RazorEngine (版本 3.4.1.0 )的问题。

我使用Razor.Parse方法在每隔几分钟启动一次的服务中使用非常简单的模板,并且它在大多数情况下都没有任何问题,但是它偶尔会抛出此异常我:

  

System.IO.FileNotFoundException:找不到   找不到文件' C:\ Users \ username \ AppData \ Local \ Temp \ cw3sv4yk.dll'。   文件名:' C:\ Users \ username \ AppData \ Local \ Temp \ cw3sv4yk.dll'

cw3sv4yk是随机生成的名称)

之前有没有人遇到过这个问题,如果有的话 - 任何有关解决方案的提示?

谢谢, Przemek

编辑:

我刚刚注意到我偶尔也会遇到这种情况:

  

RazorEngine.Templating.TemplateCompilationException:无法编译   模板。元数据文件   ' C:\ WINDOWS \ Microsoft.NET \框架\ v4.0.30319 \ mscorlib.dll中'   无法打开 - '进程无法访问该文件,因为它   正在被另一个进程使用。' \ n \ n其他编译错误可能   已经发生了。检查Errors属性以获取更多信息。

EDIT_2: 还有一个例外,那就是不时被抛出:

  

System.ArgumentException:类名是必需的

1 个答案:

答案 0 :(得分:0)

使用缓存模板的Razor.Parse方法的重载版本解决了我们的问题:

/// <summary>
/// Parses and returns the result of the specified string template.
/// </summary>
/// <typeparam name="T">The model type.</typeparam>
/// <param name="razorTemplate">The string template.</param>
/// <param name="model">The model instance.</param>
/// <param name="cacheName">The name of the template type in the cache or NULL if no caching is desired.</param>
/// <returns>The string result of the template.</returns>
public static string Parse<T>(string razorTemplate, T model, string cacheName)