首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以在Windows服务中运行托管的Orleans

是否可以在Windows服务中运行托管的Orleans
EN

Stack Overflow用户
提问于 2016-04-29 05:43:36
回答 1查看 935关注 0票数 7

请指出是否有任何直接的方法来运行托管在Windows服务中的Orleans。如果没有直接的方法,那么有没有间接的方法呢?

提前谢谢你

EN

回答 1

Stack Overflow用户

发布于 2016-05-01 02:51:04

注意:这是针对v1.x Orleans的。2.x配置发生了很大的变化

这是一个基于topshelf的示例。引用https://github.com/migrap/Topshelf.Orleans

代码语言:javascript
复制
static void Main()
{
    HostFactory.Run(c => {
        c.Service<OrleansService>(s => {
            s.ConstructUsing(sc => {
                sc.ConfigFileName("OrleansConfiguration.xml");

                //do some config at runtime if you want
                //sc.DeploymentId("blachblahc");

            });

            s.WhenStarted((service, control) => service.Start());
            s.WhenStopped((service, control) => service.Stop());
        });

        c.RunAsLocalSystem();
        c.UseAssemblyInfoForServiceInfo();
        c.SetServiceName("OrleansSiloHostService");
        c.StartAutomaticallyDelayed();
    });
}

public class OrleansService
{
    private readonly SiloHost host;
    private Task startup;

    internal OrleansService(SiloHost silohost)
    { host = silohost; }

    public bool Start()
    {
        host.LoadOrleansConfig();
        host.InitializeOrleansSilo();
        startup = Task.Factory.StartNew(() =>
        {
            return host.StartOrleansSilo();
        });
        return true;
    }

    public bool Stop()
    {
        if (startup.Status == TaskStatus.RanToCompletion)
        { host.ShutdownOrleansSilo(); }
        return true;
    }
}
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36926010

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档