2013-03-13 68 views
5

我们正在创建一个应用程序,该应用程序将ASP.NET MVC4用于Web应用程序,将WCF用于访问公共数据存储的Web服务。在WCF中使用MvcMailer

网络应用程序使用MvcMailer发送电子邮件,我希望有人能指点我一些资源,展示如何从WCF使用MvcMailer(如果存在上述资源)。

我已经经历了:https://github.com/smsohan/MvcMailer/issues/44

我宁愿不推出自己的代码,但我愿意,如果没有更好的解决办法来走这条路。

谢谢!

回答

2

我是在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服务中工作!

+0

这对我有用。你,先生,是一个传奇! – soupy1976 2013-10-01 11:26:05

+0

很高兴我能帮上忙。 – smdrager 2013-10-03 15:38:31