您可以通过命名管道自托管 ServiceStack 吗?
Posted
技术标签:
【中文标题】您可以通过命名管道自托管 ServiceStack 吗?【英文标题】:Can you Self-Host ServiceStack via Named Pipes? 【发布时间】:2016-08-09 16:40:30 【问题描述】:我需要创建一个能够与其他本地进程进行高性能通信的进程。为此,我正在考虑使用.Net's named pipes,但我想知道创建一个可以这样做的ServiceStack host 实现有多容易(或可能),这样我们就可以利用其他SS 功能?
【问题讨论】:
【参考方案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()。高性能实现还需要在有效使用线程的情况下执行请求,以便服务器可以同时处理多个请求。
【讨论】:
以上是关于您可以通过命名管道自托管 ServiceStack 吗?的主要内容,如果未能解决你的问题,请参考以下文章
通过命名管道或 rsyslog 将时间戳添加到 systemd 托管服务的日志输出
在Windows服务的WPF应用程序中托管的命名管道上使用WCF服务
“创建管道时出错。”在 Azure 管道自托管代理中运行 powershell 脚本时