2014-07-10 21 views
8

Czy istnieje sposób hostowania usługi WCF w systemie Linux. Czytałem o winie, ale nie widziałem żadnego przykładu hostowania usługi WCF.Hosting usługi WCF na Linuksie

P.S: Próbowałem mono i mod_mono, ale bez skutku.

+1

"Bez skutku" nie jest właściwym sposobem opisu problemu w stackoverflow, proszę wyjaśnij problemy, które wystąpiły podczas próby mono i mod_mono. – knocte

+0

Wine nie będzie w stanie Ci służyć, ponieważ wersja Windowsa haków WCF do IIS dużo, której nie da się przenieść przez Wine. Sprawdź odpowiedź @ Thinkstera i dostosuj swoje WCF do najprostszego i obsługiwanego trybu obsługiwanego przez Mono. Następnie możesz go hostować w systemie Linux. Oczywiście zaleca się przełączenie na ASP.NET Web API, jeśli chcesz uzyskać wsparcie najwyższej klasy. –

Odpowiedz

13

Możesz przechowywać je w aplikacji konsoli autonomicznym tak:

using System; 
using System.ServiceModel; 
using Service; 

namespace Host 
{ 
    class MainClass 
    { 
     public static void Main (string[] args) 
     { 
      Console.WriteLine ("WCF Host!"); 
      var binding = new BasicHttpBinding(); 
      var address = new Uri ("http://localhost:8080"); 
      var host = new ServiceHost (typeof(GreeterWcfService)); 
      host.AddServiceEndpoint (
       typeof(IGreeterWcfService), binding, address); 
      host.Open(); 

      Console.WriteLine ("Type [CR] to stop..."); 
      Console.ReadLine(); 
      host.Close(); 
     } 
    } 
} 

Gdzie GreeterWcfService to klasa sama usługa WCF i IGreeterWcfService jest umowa o świadczenie usług.

- z oddzielnymi projektami dla usługi, hostingu i klienta. Sprawdź to.

1

Jest to możliwe, ale należy zapoznać się z tym łączem, aby poznać obecny stan i znane problemy - http://www.mono-project.com/docs/web/wcf/. Teraz jest ograniczony. Na przykład jeśli chcesz użyć WSHttpBinding, nie jest to obecnie obsługiwane.