首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RazorEngine无法解析模板

RazorEngine无法解析模板
EN

Stack Overflow用户
提问于 2018-07-20 19:24:03
回答 2查看 2.5K关注 0票数 3

我有一个控制台应用程序,它使用RazorEngine根据应用程序的运行发送电子邮件。我能够成功地在开发IDE和通过可执行文件运行控制台应用程序发送电子邮件。但是,当我从计划的任务运行控制台应用程序时,我在网上收到一个错误“无法解析模板”,

代码语言:javascript
复制
var emailHtmlBody = Engine.Razor.RunCompile("ResponseErrors.cshtml", null, model);

有人碰到过这个吗?

代码语言:javascript
复制
var config = new TemplateServiceConfiguration
 {
    TemplateManager = new ResolvePathTemplateManager(new[] {"EmailTemplates"}),
    DisableTempFileLocking = true
 };

 Engine.Razor = RazorEngineService.Create(config);
 var emailHtmlBody = Engine.Razor.RunCompile("ResponseErrors.cshtml", null, model);

更新1:

  • 正在执行计划任务的服务器与控制台应用程序所在的服务器相同。
  • 在调度任务中执行控制台应用程序的帐户是一个具有服务器本地管理权限的域帐户。

更新2:

没有RazorEngine..。在用户的临时文件夹中创建的文件夹。

更新3:

我刚刚创建了一个示例控制台应用程序,它现在正在IDE中做同样的事情。我把它放在测试

更新4:

似乎TemplateServiceConfiguration没有按照设计的方式工作,或者我编写的示例不正确。我用下面的2行更新了测试项目,这解决了我的问题。我不认为这是预期的实现方法,但它有效。因为我知道有人会遇到同样的问题。

代码语言:javascript
复制
string path = AppDomain.CurrentDomain.BaseDirectory;
string filePath = $"{path}EmailTemplates\\ExceptionEmail.cshtml";
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-31 23:30:50

所以我今天在生产中确认了修复。添加这2行确实纠正了这个问题。因此,它的完整代码块是

代码语言:javascript
复制
 var config = new TemplateServiceConfiguration
 {
    TemplateManager = new ResolvePathTemplateManager(new[] {"EmailTemplates"}),
    DisableTempFileLocking = true
 };

 string path = AppDomain.CurrentDomain.BaseDirectory;
 string filePath = $"{path}EmailTemplates\\ExceptionEmail.cshtml";

 Engine.Razor = RazorEngineService.Create(config);
 var emailHtmlBody = Engine.Razor.RunCompile(filePath, null, model);
票数 3
EN

Stack Overflow用户

发布于 2020-07-03 15:59:58

有同样的问题,我的解决方案是更改项目文件ProjectName.csproj外部,并将视图作为内容添加,而不是从

代码语言:javascript
复制
    <None Include="Views/Folder/Name.cshtml"/>

代码语言:javascript
复制
    <Content Include="Views\Emails\Name.cshtml">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </Content>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51449148

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档