WTM(ASP.NET 5 or 6)发布为Windows服务和使用bat方式启动

最近部署wtm研发的考试系统,系统在线下机房部署。运气不好的是对方给提供WindowsServer2016操作系统居然是盗版系统,IIS无法正常部署wtm应用。

为了解决这一问题,初期想到的方案就是使用批处理方式用命令启动,刚开始还好好的。结果服务器内别人又部署了一套系统,没事就顺手关了控制台,要么就是机房的管理员没事就关机。没办法,看了看微软的文档,决定采用Windows服务的方式来部署。

一、Bat方式启动

这种方式的原理,实际上就是分步骤执行两个cmd命令,其中一个是dotnet cli

@echo off
start cmd /k "cd /d D:/dqkks && dotnet TXKS.dll urls=http://*:8585"

cd /d D:/dqkks 转到目标文件夹

dotnet TXKS.dll urls=http://*:8585 启动.NET Core web程序 端口为8585

二、发布为Windows服务

1、安装Microsoft.Extensions.Hosting.WindowsServices 包

2、wtm项目中打开 Program.cs文件

添加2句代码即可

using System.Collections.Generic;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using WalkingTec.Mvvm.Core;

namespace TXKS
{
    public class Program
    {
        public static void Main(string[] args)
        {
            CreateWebHostBuilder(args).Build().Run();
        }

        public static IHostBuilder CreateWebHostBuilder(string[] args)
        {
            return
                Host.CreateDefaultBuilder(args)
                .UseWindowsService()//为Host增加UseWindowsServices方法
                  .ConfigureAppConfiguration((hostingContext, config) =>
                  {
                      config.AddInMemoryCollection(new Dictionary<string, string> { { "HostRoot", hostingContext.HostingEnvironment.ContentRootPath } });
                  })
                 .ConfigureLogging((hostingContext, logging) =>
                 {
                     logging.ClearProviders();
                     logging.AddConsole();
                     logging.AddWTMLogger();
                 })
                .ConfigureWebHostDefaults(webBuilder =>
                 {
                     webBuilder.UseUrls("http://*:8087", "http://*:8088");//使用UseUrls方法指定ASP.NET Core应用程序启动后使用的端口号和协议(http、https)。
                     webBuilder.UseStartup<Startup>();
                 });
        }
    }
}

3、正常发布项目 默认配置即可 

4、测试web项目exe是否能正常运行

在服务器 找到项目目录 双击 TXKS.exe TXKS是你项目名称

如果正常运行则进行服务发布,如果不行就检查问题。最可能出现的问题,一般都是SDK没有安装或者数据库连接字符串配置的问题。

5、安装服务

这里我们采用命令安装

sc create AspNetCoreWindowsService binPath=C:\Publish\AspNetCore\TXKS.exe

AspNetCoreWindowsService 是你目标的服务器名称

binPath就是项目的启动的exe目标文件 一定要填对

6、服务卸载

sc delete AspNetCoreWindowsService

三、项目访问

采用Windows服务方式部署,一般测试的时候或者命令安装服务器就会弹出防火墙端口开放提醒,如果没有则使用防火墙高级设置打开项目使用端口。

访问采用Ip:Port的方式就可以正常访问。

参照文章:如何把ASP.NET Core应用程序做成为Windows Service服务(转载)https://www.cnblogs.com/OpenCoder/p/14637085.html

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值