我必须创建一个能够发送电子邮件的 Asp.Net Web Api。我设法发送了电子邮件,但仅使用存储在本地变量中的简单模板。下一步是从外部文件渲染模板,如下所示:
string filePath = @"C:\Data\EmailClient\EmailClient\EmailClient\EmailTemplate\ReceiptTemplate.cshtml";
var config = new TemplateServiceConfiguration
{
TemplateManager = new ResolvePathTemplateManager(new[] { "EmailTemplates" }),
DisableTempFileLocking = true
};
Engine.Razor = RazorEngineService.Create(config);
if (File.Exists(filePath))
{
emailHtmlBody = Engine.Razor.RunCompile(filePath, null, email);
mail.Body = emailHtmlBody;
}
Run Code Online (Sandbox Code Playgroud)
问题是,当剃刀引擎尝试解析模板时,会出现以下错误:
"Could not load type 'System.Security.Principal.WindowsImpersonationContext' from assembly 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'."
Run Code Online (Sandbox Code Playgroud)
我试图从字符串中解析模板,但我也因同样的错误而被阻止。