2013-03-13 2 views
5

Stiamo creando un'app che utilizza ASP.NET MVC4 per l'app Web e WCF per i servizi Web che accedono a un archivio dati comune.utilizzando MvcMailer in WCF

L'app Web invia messaggi di posta elettronica tramite MvcMailer, speravo che qualcuno potesse indicarmi alcune risorse che mostrano come MvcMailer può essere utilizzato anche da WCF (se esistono tali risorse).

Ho passato attraverso: https://github.com/smsohan/MvcMailer/issues/44

preferisco non rotolare il mio codice, ma sono disposto ad andare su questa strada se non c'è soluzione migliore.

Grazie!

risposta

2

Ero il ragazzo che ha pubblicato quel problema su GitHub. Non ci sono risorse in questo momento per farlo, quindi ho dovuto capirlo da solo. Ecco la piccola guida che ho scritto ai miei colleghi. Dovrei postarlo online da qualche parte.

Come consentire a MvcMailer di funzionare in WCFService.

1) Attivare la HttpContext

A) Aggiungere il seguente al web.config

<system.serviceModel> 
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" aspNetCompatibilityEnabled="true" /> 
</system.serviceModel> 

B) Aggiungere il seguente attributo alla classe di servizio.

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] 
//public class MyService 
//{ 
// ... 
//} 

2) Attivare Razor

A) Aggiungere il seguente al 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) Aggiungere i seguenti riferimenti al progetto di servizio WCF.

System.Web.WebPages 
System.Web.WebPages.Razor 

C) Selezionare i riferimenti, fare clic con il tasto destro e aprire Proprietà per essi. Quindi impostare la seguente proprietà:

Copy Local = true 

Fine! MvcMailer ora funzionerà nel tuo servizio WCF!

+0

Questo ha funzionato per me. Tu, signore, sei una leggenda! – soupy1976

+0

Contento di essere di aiuto. – smdrager