gpt4 book ai didi

c# - 是否可以运行托管在 Windows 服务中的 Orleans

转载 作者:太空狗 更新时间:2023-10-29 20:16:16 26 4
gpt4 key购买 nike

请指出是否有任何直接方法可以运行托管在 Windows 服务中的 Orleans。如果没有直接方法,那么是否有任何间接方法可以做到这一点?

提前致谢

最佳答案

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

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

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;
}
}

关于c# - 是否可以运行托管在 Windows 服务中的 Orleans,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36926010/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com