app.Run();需要注意的是:与 Worker Service 不同,在 http://ASP.NET Core 应用中,需要通过builder.Host拿到IHostBuilder的实例。
使用sc create注册 Windows Service 成功。
但是在启动时,却提示 1053 错误:
通过事件查看器,我们发现导致错误的原因是当前工作目录是C:\WINDOWS\system32而不是我们的 ASP.NET Core 应用所在目录:
解决方案
1. 修改工作目录
虽然在 Windows Service 属性窗口中不能设置工作目录,但是我们可以在启动时修改当前工作目录:
Directory.SetCurrentDirectory(AppContext.BaseDirectory);
var builder = WebApplication.CreateBuilder(args);2. 设置 ContentRootPath