我正在尝试使用Topshelf创建一个将作为服务运行的Rebus端点。应如何设置并有任何示例?
答案 0 :(得分:2)
您可以查看Rebus samples repository,其中integration service sample特别显示您所追求的内容。
正如您在Program.cs中所看到的,它使用Topshelf基本上只是保持一个Windsor容器,它在应用程序关闭时处理。
Castle Windsor installer syntax会自动选择安装程序,RebusInstaller显示您通常如何让Rebus将自己注入您的容器,以及HandlerInstaller展示了如何向容器添加处理程序。
调整样本以使用另一个容器应该相当容易 - 只需记住在应用程序关闭时将其丢弃,从而使Rebus有机会完成当前正在处理的消息并停止其工作线程。