这三种把.Net Core部署至 Windows 服务的方法,你还不知道吗?
这篇主要是学习如何在windows 下部署 .net core
为什么部署至Windows Services
在很多情况下,很少会把.Net Core项目部署至Windows服务中,特别是Asp.net Core就更少了。一般情况下,Asp.net Core会部署至linux服务器,或者者部署至Windows的IIS中。但也不排除会有Asp.net Core部署至Windows 服务中的情况,比方Windows服务器并没有安装IIS,或者者Asp.net Core中存在少量定时任务,需要实时运行,等等少量情况。
微软处理方案
微软也提供了.Net Core部署至Windows 服务的处理方案,应该说是Asp.net Core的处理方案。可以参看官方文档 https://docs.microsoft.com/zh-cn/aspnet/core/host-and-deploy/windows-service?view=aspnetcore-2.1&tabs=aspnetcore2x。但是官方的处理方案比较繁琐,而且需要更改部分代码。
第一种方式:控制台运行
打开cmd ,路径定位到项目根目录文件夹,运行dotnet run
这三种把.Net Core部署至 Windows 服务的方法,你还不知道吗?
假如端口冲突,可在launchSettings.json 修改对应端口。
运行后会自动监听对应端口,直接访问http://127.0.0.1:5002/api/values 就可调取接口
第二种方式:IIS部署
发布到文件夹binDebug etcoreapp2.1publish
1. 新建IIS站点
端口为9011,程序池设置CLR版本为无托管代码
这三种把.Net Core部署至 Windows 服务的方法,你还不知道吗?这三种把.Net Core部署至 Windows 服务的方法,你还不知道吗?
2. 安装 .NET Core Windows Server 托管捆绑包
此时访问接口 仍然报错,网上查询,还需要安装.NET Core Windows Server 托管捆绑包 。
假如想监听日志,在发布文件夹下新建logs文件夹,而后修改web.config 设置stdoutLogEnabled=”true”
此时访问http://127.0.0.1:9011/api/values ,成功调取接口
第三种方式:使用NSSM
后面的代码演示以Asp.net Core 2.1作为演示,其余.Net Core方式一致。
1、确保.Net Core程序可以正常运行
先把Asp.net Core发布,而后直接运行dotnet命令,确保程序可以运行并访问
这三种把.Net Core部署至 Windows 服务的方法,你还不知道吗?
2、使用NSSM安装dotnet
下载NSSM,使用命令窗口至NSSM目录中找到nssm.exe所在的目录,而后运行nssm install,而后会弹框,选择相应的文件和文件夹。
这三种把.Net Core部署至 Windows 服务的方法,你还不知道吗?
Path:dotnet所在的目录,一般默认是在C:Program Filesdotnetdotnet.exe;
Startup directory:程序所在的目录,就是最后程序dll所在的目录;
Arguments:程序dll的名称,一般是项目名加上.dll;
Service name:在此写上服务的名称就可。
而后点击Install service按钮就完成了部署。
最后到Windows服务管理界面找到安装的服务名称,右键启动就可,或者者直接运行nssm start 服务名称,也可以运行net start 服务名称。这样即可以非常简单的把.Net Core托管至Window服务中。方便管理、启动、中止等等。
NSSM更多的操作
命令窗口至NSSM目录中找到nssm.exe所在的目录,而后运行nssm,会看到NSSM的更多操作
这三种把.Net Core部署至 Windows 服务的方法,你还不知道吗?
比方对服务的增删改查,启动,中止,重启等等。都可以直接用NSSM直接操作,少量常用的操作支持界面话(GUI)。
总结
1、使用NSSM不仅可以把Asp.net Core部署到Windows 服务中,也可以把.Net Core甚至于其余exe程序封装在服务中运行。
2、为.Net Core提供了另一种部署在Windows的方式。
喜欢的话请帮忙转发一下能让更多有需要的人看到吧,有些技术上的问题大家可以多讨论一下。
image.png
以上Android资料以及更多Android相关Android资料及面试经验可在QQ群里获取:936903570。有加群的朋友请记得备注上简书,谢谢。
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 这三种把.Net Core部署至 Windows 服务的方法,你还不知道吗?