有没有办法在Linux上托管WCF服务。 我读到了葡萄酒,但我没有看到任何托管WCF服务的例子。
P.S:我尝试过mono和mod_mono,但无济于事。
答案 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,目前不支持它。