Hosting WCF service on linux

2019-01-22 15:43发布

问题:

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.

回答1:

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.



回答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.