由于公司程序前置Nginx反向代理,所以在Windows中部署过程中没有采用IIS托管.Net Core应用,一直采用控制台dotnet命令直接运行。但是测试过程中,发现程序内Session一直无法覆盖,可是在打开远程桌面的时候,一切正常,考虑很久,应该是Windows权限相关的问题,本人才疏学浅,没找到问题根源,推测用服务形式启动程序,可以解决这个问题。才有了这篇文章。

  Windows部署下常用的两种方式:

  一、修改目标框架以及启动方式

    https://docs.microsoft.com/zh-cn/aspnet/core/host-and-deploy/windows-service

    这种方式也是官方推荐的一种,通过修改.csproj文件中目标框架和加载Microsoft.AspNetCore.Hosting.WindowsServices模块修改程序启动方式,然后用sc命令创建管理服务。

    实践过程中发现所有引用的类库都要修改,果断放弃,涉及项目类库太多。

  二、通过instsrv创建服务,无需修改代码(个人推荐这种方式)

    https://www.cnblogs.com/zhaiqianfeng/p/4622561.html

    https://www.cnblogs.com/zhushunli/p/6043147.html

    网上这方面文章很多,就不造轮子了,重点是这种方式适用于任何程序,对程序没有入侵。

    重点来了,通过网友的示例,本人成功运行起服务,已经运行一周,目前来看没有任何问题,但是创建过程比较繁琐。因此本人通过网上的一些资料,编辑了一个创建删除服务的一个批处理程序,分享出来。

    点击下载     

 del.bat             删除服务入口文件(需修改)
install.bat 创建服务入口文件(需修改)
run-del.bat 主文件
run-install.bat 主文件
instsrv.exe 主程序
srvany.exe 主程序

    del.bat 文件

@echo off
cd /d %~dp0
call run-del.bat 服务名称
pause

    install.bat 文件

@echo off
cd /d %~dp0
call run-install.bat 服务名称 文件路径
pause

托管ASP.NET Core应用程序到Windows服务中的更多相关文章

  1. Linux使用Jexus托管Asp.Net Core应用程序

    第一步 安装.Net Core环境 安装 dotnet 环境参见官方网站 https://www.microsoft.com/net/core. 选择对应的系统版本进行安装.安装完成过后 输入命令查看 ...

  2. 使用 Nginx 在 Linux 上托管 ASP.NET Core 应用程序

    本文于2019年04月10日将标题「CentOS7 部署 ASP.NET Core应用程序」修改为「使用 Nginx 在 Linux 上托管 ASP.NET Core 应用程序」. 环境准备 VMwa ...

  3. 使用 Docker 在 Linux 上托管 ASP.NET Core 应用程序

    说在前面 在阅读本文之前,您必须对 Docker 的中涉及的基本概念以及常见命令有一定了解,本文侧重实战,不会对相关概念详述. 同时请确保您本地开发机器已完成如下安装: Docker 18.06 或更 ...

  4. ASP.NET Core使用TopShelf部署Windows服务

    asp.net core很大的方便了跨平台的开发者,linux的开发者可以使用apache和nginx来做反向代理,windows上可以用IIS进行反向代理. 反向代理可以提供很多特性,固然很好.但是 ...

  5. Asp.net Core应用程序部署为服务

    安装前使用dotnet命令运行下看网站能不能正常运行 1.下载nssm,下载后解压文件 下载地址:https://nssm.cc/usage 2.使用命令行工具进入到nssm的目录: 3.执行服务安装 ...

  6. CentOS 7部署ASP.NET Core应用程序

    看了几篇大牛写的关于Linux部署ASP.NET Core程序的文章,今天来实战演练一下.2017年最后一个工作日,提前预祝大家伙元旦快乐.不扯淡,直接进入正题.您有任何问题请在评论区留言. 1.环境 ...

  7. 如何托管ASP.NET Core应用到Windows Service中

    (此文章同时发表在本人微信公众号"dotNET开发经验谈",欢迎右边二维码来关注.) 题记:正在构思一个中间件的设计,考虑是否既可以使用最新的技术,也可以兼顾传统的部署模式.所以有 ...

  8. Windows平台部署 Asp.Net Core 3.1.0,将 ASP.NET Core 应用发布到 IIS ,使用 IIS 在 Windows 上托管 ASP.NET Core

    第一部分:本教程介绍如何在 IIS 服务器上托管 ASP.NET Core 应用. 官方文档地址:https://docs.microsoft.com/zh-cn/aspnet/core/tutori ...

  9. .NET 6学习笔记(3)——在Windows Service中托管ASP.NET Core并指定端口

    在上一篇<.NET 6学习笔记(2)--通过Worker Service创建Windows Service>中,我们讨论了.NET Core 3.1或更新版本如何创建Windows Ser ...

随机推荐

  1. PAT1116. Come on! Let's C (map)

    思路:模拟一下就好了,map用来记录每个人的排名. AC代码 #include <stdio.h> #include <map> #include <math.h> ...

  2. 计蒜客 无脑博士 bfs

    题目链接无脑博士的试管们 思路:直接模拟倒水过程即可,但是需要记忆判断当前的情况是否已经处理过.dfs和bfs都ok AC代码 #include <cstdio> #include < ...

  3. 老司机教你在windows不用软件隐藏重要文件

    每个人电脑里面都有些秘密,但是别人需要使用你的电脑时,有可能会看到,但是我们又不想让别人发现时,我们可以将其隐藏,那么别人就不会看到了.360文件保险柜.腾讯电脑管家等等.使用软件繁琐软件过大还会拖慢 ...

  4. iOS 开发之字典写入文件

    在最近的开发中阿,遇到一个问题,是我开始没有注意到的问题,某个羡慕后期维护的过程中发现一个bug,这个bug就是关于字典写入文件的.缘由是这样的,我用字典写入文件的方法 BOOL result = [ ...

  5. R语言︱排序问题

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 数据排序 1.sort(),rank(),or ...

  6. Linux查看系统中的每个进程

    Linux查看系统中的每个进程 youhaidong@youhaidong-ThinkPad-Edge-E545:~$ ps -A PID TTY TIME CMD 1 ? 00:00:01 init ...

  7. Flash Builder4.0新建Flex应用程序切换主题出错

    1.错误描述 2.错误原因 <?xml version="1.0" encoding="utf-8"?> <s:Application xml ...

  8. jenkins部署web项目到webogic

    注: Docker容器里安装的jenkins,Docker容易里安装的weblogic 在jenkins里面直接将打包好的 war 包通过 Publish over SSH插件 放入 weblogic ...

  9. http协议的补充二

    一,浏览器到服务器request 1.1,浏览器里面的内容 请求(浏览器->服务器) GET /day09/hello HTTP/1.1 Host: localhost:8080 User-Ag ...

  10. Java多线程之Callable接口的实现

    Callable 和 Future接口  Callable是类似于Runnable的接口,实现Callable接口的类和实现Runnable的类都是可被其它线程执行的任务. Callable和Runn ...