有没有在Linux上托管WCF服务的方法?我读过关于wine的文章,但没有看到任何使用它托管WCF服务的示例。
附注:我尝试过mono和mod_mono,但都没有成功。
您可以像这样在独立的控制台应用程序中托管它:
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
则是服务契约。
完整的工作示例解决方案在GitHub中 - 包括服务、托管和客户端三个独立项目。可以去查看一下。
这是可能的,但你应该参考这个链接以了解当前状态和已知问题 - http://www.mono-project.com/docs/web/wcf/。目前它是有限制的。例如,如果你希望使用WSHttpBinding,它目前不受支持。