ASP.NET Core项目基于Windows 服务的打包托管

8 篇文章 0 订阅
4 篇文章 0 订阅

1. 工程创建

工程目标框架可为 .NetFramework 或 .NetCore,模板为 .NetCore下的API工程,正常编写工程代码即可

2.转换项目为Windows服务

  1. 修改工程的 .csproj 文件,添加Windows 运行时标识符
<PropertyGroup>
   <TargetFramework>net461</TargetFramework>
   <RuntimeIdentifier>win-x64</RuntimeIdentifier>
 </PropertyGroup>
  1. 添加Microsoft.AspNetCore.Hosting.WindowsServices 引用包
  2. 修改 Program.cs 文件
   public class Program
   {
       public static void Main(string[] args)
       {
           // 1.修改为调用 RunAsService()
           CreateWebHostBuilder(args).Build().RunAsService();
       }

       public static IWebHostBuilder CreateWebHostBuilder(string[] args)
       {
           // 2.调用 UseContentRoot 并使用应用的发布位置路径
           var pathToExe = Process.GetCurrentProcess().MainModule.FileName;
           var pathToContentRoot = Path.GetDirectoryName(pathToExe);

           return WebHost.CreateDefaultBuilder(args)
               .ConfigureAppConfiguration((context, config) =>
               {
                    // Configure the app here.
               })
               .UseContentRoot(pathToContentRoot)
               .UseStartup<Startup>();
       }
   }
  1. appsettings.json 文件配置
		"urls": "http://*:5001"     // *标识ip全称

3. 发布工程

可用VS内嵌发布插件发布,格式为“文件系统”,或者使用命令行发布,在解决方案文件夹下执行命令(运行时根据工程而定):
dotnet publish --configuration Release --runtime win-x64

4. sc命令工具打包服务(管理员身份执行)

  1. 创建服务:
    在打包后的文件夹下执行命令:
    sc create MyServiceName.exe binPath= "MyServiceName.exe path"
    注意:binPath 值是应用的可执行文件的路径,其中包括可执行文件的文件名。 等于号和路径开头的引号字符之间需要添加空格。

  2. 启动服务
    sc start MyServiceName.exe
    服务启动成功后,若是Web 应用时,在应用所在路径中浏览应用,默认路径 http://localhost:5000,若appsetting已配置,则按配置地址

  3. 停止服务
    sc stop MyServiceName.exe

  4. 卸载服务
    sc delete MyServiceName.exe

END
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值