认识一般主机的注入windows service

使用topself,因为我太蠢了,所以经常会1064或者是1053,最近花了1-2天才搞清楚在使用topself的时候应该怎么写。

Microsoft.Extensions.Hosting.IHost,

 

HostFactory.Run(x =>
{
x.Service<IHost>(s =>
{
s.ConstructUsing(() => Start00(fileroot, args, Log.Logger).Build());
s.WhenStarted(service =>
{
service.Start();//主机同步调用
});
s.WhenStopped(async service =>
{
await service.StopAsync();
});
});

//x.Service(s => new MainSiloServiceControl(fileroot, Log.Logger,args));
//x.Service<HYWServiceControl>();
x.EnableServiceRecovery(r => r.RestartService(TimeSpan.FromMinutes(1)));
x.RunAsLocalSystem();
x.SetDisplayName("路径测试员V2");
x.SetServiceName("路径测试员V2");
x.RunAsLocalService();
x.StartAutomaticallyDelayed();
});

见使用orleans的通用主机的例子。主要是为了看asp.net core是怎么配置的。

var host = new HostBuilder()
  .ConfigureWebHostDefaults(webBuilder =>
  {
    // Configure ASP.NET Core
    webBuilder.UseStartup<Startup>();
  })
  .UseOrleans(siloBuilder =>
  {
    // Configure Orleans
    siloBuilder.UseLocalHostClustering();
  })
  .ConfigureLogging(logging =>
  {
    /* Configure cross-cutting concerns such as logging */
  })
  .ConfigureServices(services =>
  {
    /* Configure shared services */
  })
  .UseConsoleLifetime()
  .Build();

// Start the host and wait for it to stop.
await host.RunAsync();
蠢人记录
posted @   forhells  阅读(170)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示