.net 部署为windows服务 linux服务
安装nuget
Install-Package Microsoft.Extensions.Hosting.WindowsServices
Install-Package Microsoft.Extensions.Hosting.Systemd
.net5
调整CreateHostBuilder
public static IHostBuilder CreateHostBuilder(string[] args)
{
IHostBuilder hostBuilder = Host.CreateDefaultBuilder(args)
.UseServiceProviderFactory(new AutofacServiceProviderFactory())
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder
.UseUrls($"http://{ip}:{port}")
.UseStartup<Startup>()
;
});
if (System.OperatingSystem.IsWindows())
{
hostBuilder.UseWindowsService();
}
if (System.OperatingSystem.IsLinux())
{
hostBuilder.UseSystemd();
}
return hostBuilder;
}
windows服务使用sc命令注册
linux服务使用systemd注册-使用systemctl管理
如果需要依赖其他服务才能启动,可以配置服务依赖
windows下
sc config ServiceA depend= "BaseService"
# 重新设置为空字符串即可清空依赖属性
.net7
调整为以下代码
var builder = WebApplication.CreateBuilder(args);
if (System.OperatingSystem.IsWindows())
{
builder.Host.UseWindowsService();
}
if (System.OperatingSystem.IsLinux())
{
builder.Host.UseSystemd();
}
var app = builder.Build();
另外需要注意在linux下使用systemctl管理服务时不要配置Type=forking
[参考]
systemd.service
留待后查,同时方便他人
联系我:renhanlinbsl@163.com
联系我:renhanlinbsl@163.com
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!
2019-05-24 使用EasyPrint实现不预览直接打印功能_非JS打印
2019-05-24 vs install 安装时自动添加注册表
2019-05-24 url protocol
2017-05-24 asp.net mvc Dateset读取Excel数据