【发布时间】:2021-01-12 06:02:04
【问题描述】:
我创建了一个 .net 核心服务。起初,我尝试按原样启动它,注入所有服务。我将应用程序发布为自包含的,但是当我尝试通过 cmd 行将其添加为服务并启动它时,我收到一个错误:
Windows 无法在本地计算机上启动 XXX 服务。 错误 1053:服务没有及时响应启动或控制请求。
这将在我单击开始后大约 10 秒发生,并且进度条运行大约一半(以中等速度)。
很公平,也许我所有的服务都需要很长时间才能启动,所以我将它们从 ConfigureServices 部分中清除,作为测试运行。
现在,在我尝试启动它时添加了该服务。和以前一样,进度条开始以中等速度运行,但现在它超过了中途标记,然后开始缓慢移动。当它到达末尾时,我仍然收到上一条消息,但服务的状态(在服务管理器窗口中)现在卡在启动中。
我的程序课:
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
})
.UseSerilog((hostingContext, loggerConfiguration) =>
loggerConfiguration
.ReadFrom.Configuration(hostingContext.Configuration)
.Enrich.FromLogContext()
);
}
我的创业班:
public class Startup
{
public IConfiguration Configuration { get; }
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
// This method gets called by the runtime. Use this method to add services to the container.
// For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
public void ConfigureServices(IServiceCollection services)
{
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseRouting();
app.UseEndpoints(endpoints =>
{
});
}
}
如您所见,我没有做任何会阻止服务启动的事情,但确实有。
我做错了什么?
【问题讨论】:
-
您是否尝试过按照docs.microsoft.com/en-us/aspnet/core/host-and-deploy/…中提到的故障排除步骤
-
@FrancoisduPlessis,我没有。现在就这样做。
-
@FrancoisduPlessis,我欠你一杯啤酒。我在浏览时注意到的第一件事是我没有指定 .UseWindowsService() 。在遵循该部分之后,它正在启动。您想将其作为答案发布,以便我接受吗?
-
很高兴它运行起来了!您找到了答案,因此您可以自己发布答案:) 我只是向您指出了一些文档:P
标签: c# asp.net-core