9

Is there Any way of hosting WCF service on Linux. I read about wine but i didn't see any example of hosting WCF service with it.

P.S : I have tried mono and mod_mono but to no avail.

satishsingh2230
  • 225
  • 2
  • 3
  • 10
  • 2
    "to no avail" is not a proper way to describe your problem in stackoverflow, please explain the problems you had when trying mono and mod_mono. – knocte Jul 10 '14 at 11:25
  • Wine won't be able to serve you, as the Windows version of WCF hooks to IIS a lot, which is impossible to be ported via Wine. Check out @Thinkster's answer and tailor your WCF to the simplest and supported mode that Mono can support. Then you can host it on Linux. Of course it is recommended to switch to ASP.NET Web API if you want first class support. – Lex Li Jul 13 '14 at 02:43

2 Answers2

21

You can host it in a stand-alone console application like so:

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 [Enter] to stop...");
            Console.ReadLine ();
            host.Close ();
        }
    }
}

Where GreeterWcfService is the WCF service class itself and IGreeterWcfService is the service contract.

Full working example solution in GitHub - with separate projects for the service, the hosting and a client. Check it out.

Johan Boulé
  • 1,936
  • 15
  • 19
shturm
  • 857
  • 7
  • 18
2

Its possible but you should refer to this link for understanding current state and known issues - http://www.mono-project.com/docs/web/wcf/. It's limited now. For eg. if you wish to use WSHttpBinding its not supported currently.

Matthew Murdoch
  • 30,874
  • 30
  • 96
  • 127
thinkster
  • 586
  • 2
  • 5
  • 19