我是在 GitHub 上发布该问题的人。现在没有资源可以做到这一点,所以我必须自己弄清楚。这是我写给同事的小指南。我应该把它发布到网上的某个地方。
如何允许 MvcMailer 在您的 WCFService 中运行。
1) 启用 HttpContext
A) 将以下内容添加到您的 Web.Config
<system.serviceModel>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" aspNetCompatibilityEnabled="true" />
</system.serviceModel>
B) 将以下属性添加到您的服务类。
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
//public class MyService
//{
// ...
//}
2) 启用剃刀
A) 将以下内容添加到您的 Web.Config
<system.web>
<compilation debug="true" targetFramework="4.0">
<assemblies>
<add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</assemblies>
<buildProviders>
<add extension=".cshtml" type="System.Web.WebPages.Razor.RazorBuildProvider, System.Web.WebPages.Razor"/>
</buildProviders>
</compilation>
</system.web>
B) 将以下引用添加到 WCF 服务项目。
System.Web.WebPages
System.Web.WebPages.Razor
C) 选择引用,右键单击并打开它们的属性。然后设置以下属性:
Copy Local = true
完成! MvcMailer 现在将在您的 WCF 服务中工作!