在linux上托管WCF服务

时间:2014-07-10 05:23:29

标签: wcf mono centos wine mod-mono

有没有办法在Linux上托管WCF服务。 我读到了葡萄酒,但我没有看到任何托管WCF服务的例子。

P.S:我尝试过mono和mod_mono,但无济于事。

2 个答案:

答案 0 :(得分:17)

您可以将其托管在独立的控制台应用程序中,如下所示:

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 ();
        }
    }
}

其中GreeterWcfService是WCF服务类本身,IGreeterWcfService是服务合同。

Full working example solution in GitHub - 为服务,托管和客户提供单独的项目。看看吧。

答案 1 :(得分:2)

可能但你应该参考这个链接来了解当前状态和已知问题 - http://www.mono-project.com/docs/web/wcf/。它现在有限。例如。如果你想使用WSHttpBinding,目前不支持它。