你能通过命名管道自我托管ServiceStack吗?

时间:2016-08-09 16:40:31

标签: .net servicestack ipc named-pipes

我需要创建一个能够与其他本地进程进行高性能通信的进程。为此,我正在考虑使用.Net's named pipes,但我想知道创建一个ServiceStack host实现是多么容易(或可能),这样我们就可以利用其他SS功能?

1 个答案:

答案 0 :(得分:1)

目前尚不支持.NET命名管道,但此would make a good feature request

如果您想要实现自己,请查看Messaging integrates with ServiceStack如何从MQ服务器接受消息之后将其委派给ServiceController的ExecuteMessage() API,例如:

public override void Configure(Container container)
{
    container.Register<IMessageService>(c => new RabbitMqServer());

    var mqServer = container.Resolve<IMessageService>();

    mqServer.RegisterHandler<Hello>(m => 
        ServiceController.ExecuteMessage(m));
    mqServer.Start();
}

命名管道实现会做类似的事情,但您需要委托给ServiceController.Execute()。高效的实现也需要在有效使用线程时执行请求,以便服务器可以同时处理多个请求。