返回顶部
首页 > 资讯 > 精选 >如何部署ASP.NET Core程序到Windows系统
  • 678
分享到

如何部署ASP.NET Core程序到Windows系统

2023-06-29 14:06:20 678人浏览 薄情痞子
摘要

这篇文章主要讲解了“如何部署asp.net Core程序到windows系统”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何部署ASP.net Core程序到Windo

这篇文章主要讲解了“如何部署asp.net Core程序到windows系统”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何部署ASP.net Core程序到Windows系统”吧!

一、创建项目

创建新项目的时候选项ASP.net core WEB应用程序,如下图所示:

如何部署ASP.NET Core程序到Windows系统

配置新项目界面界面设置项目名称和位置,如下图所示:

如何部署ASP.NET Core程序到Windows系统

选择.net core框架下面的ASP.Net Core 3.1,创建一个api项目,不勾选“为https配置”,如下图所示:

如何部署ASP.NET Core程序到Windows系统

这样就创建好了一个Web Api项目,我们访问项目:

如何部署ASP.NET Core程序到Windows系统

浏览器里面可以正常访问,说明我们创建的项目没有问题,接下来我们就把这个项目部署到windows系统上面。

二、发布项目

我们在上面创建了一个Web Api项目,下面先发布项目。ASP.NET Core项目有两种发布部署模式,下面分分进行讲解。

1、框架依赖

框架依赖(FDD):即Framework-dependent deployments的缩写。这种发布方式依赖于Framework框架,即要部署的服务器上面必须按照ASP.NET Core 运行时环境(ASP.NET Core Runtime)。这种部署方式是微软默认推荐的。下面我们看看如何使用框架依赖进行部署。

我们在项目上面右键选择“发布”:

如何部署ASP.NET Core程序到Windows系统

发布目标选择发布到文件夹,将文件发布到FDD文件夹,然后点击“高级”:

如何部署ASP.NET Core程序到Windows系统

在发布界面,部署模式选择框架依赖,目标运行时选择默认的可移植:

如何部署ASP.NET Core程序到Windows系统

我们看到目标运行时下面有好多选项,这里选择“可移植”,表示编译后的文件可以部署到windows平台、Max平台、linux平台。如果只想部署到某一个平台,那么可以选择具体的一个平台。比如只想部署到Linux系统的x64架构,那么选择“linux-x64”即可。

最后点击“保存”按钮,然后发布即可:

如何部署ASP.NET Core程序到Windows系统

这样就使用FDD方式发布成功了。我们看看发布后的文件:

如何部署ASP.NET Core程序到Windows系统

可以看到,框架依赖方式发布后的文件很少。

2、独立部署

独立(SCD):即Self-contained deployments的缩写。这种方式表示独立提供运行时环境,即要部署的服务器上面不需要安装ASP.NET Core运行时环境即可部署。由于不需要预先安装运行时环境,所以这种发布方式编译后的文件大小会比框架依赖方式编译后的文件大小大。在发布的时候,部署模式选择独立即可:

如何部署ASP.NET Core程序到Windows系统

这时候目标运行时就没有可移植选项了,由于我们要在windows系统上面部署,所以这里选择win-x64。最后保存发布即可。发布完成以后,我们在看看发布后的文件:

如何部署ASP.NET Core程序到Windows系统

可以看到,发布后的文件很多,这时因为发布的时候有一些程序运行需要使用的dll文件夹会打包进来。

三、部署

1、配置部署环境

我们在上面的步骤中,已经把程序发布到文件夹了,下面进行部署。我们先演示如何使用FCD模式进行部署。FCD模式需要依赖于Framework框架,由于我们只是部署,所以只需要安装ASP.NET Core Runtime即可,不需要安装SDK。我们首先需要在服务器上面安装ASP.NET Core runtime,去微软官网下载相应版本进行安装即可,这里选择ASP.NET Core Runtime 3.1:

如何部署ASP.NET Core程序到Windows系统

这里选择下载Hosting Bundle。因为Hosting Bundle包括了.Net Core运行时和IIS支持。

下载完成以后,双击exe文件即可进行安装:

如何部署ASP.NET Core程序到Windows系统

安装完成以后我们在命令行里面输入下面的命令,检查是否安装成功:

dotnet --info

如下图所示:

如何部署ASP.NET Core程序到Windows系统

可以看到提示我们已经安装了.NET Core runtimes环境,没有安装SDK。

由于我们需要部署到IIS上面,所以安装完以后要重启电脑,或者使用下面的命令行重启IIS服务:

net stop was /ynet start w3svc

如下图所示:

如何部署ASP.NET Core程序到Windows系统

注意:要以管理员身份运行命令行,否则会报拒绝访问的错误

还可以管理服务器里面重启启动IIS,如下图所示:

如何部署ASP.NET Core程序到Windows系统

2、控制台方式部署

我们先使用控制台的方式进行部署。进入发布后的路径,执行下面的命令,以命令行的方式进行启动:

dotnet dll文件名称

如下图所示:

如何部署ASP.NET Core程序到Windows系统

可以看到项目已经启动了,正在监听5000端口,我们在浏览器里面访问下面的url地址:Http://localhost:5000/weatherforecast

如何部署ASP.NET Core程序到Windows系统

可以看到能够正常返回信息。

这里测试的时候是在Windows服务器上部署的,如果是在个人电脑上面部署,在浏览器里面浏览的时候会直接在web页面里面显示。

我们是把程序部署到了服务器上面,在服务器上面可以浏览,那么在远程电脑上面能不能浏览呢?我们在远程电脑上面浏览:

如何部署ASP.NET Core程序到Windows系统

可以看到拒绝我们的访问,这是为什么呢?因为监听的IP地址是localhost,如果想要远程电脑可以访问,还需要使用urls参数进行设置:

如何部署ASP.NET Core程序到Windows系统

这里使用了*号,表示任意网址都可以访问,我们再次访问:

如何部署ASP.NET Core程序到Windows系统

这次我们就可以访问了。使用urls参数还可以指定访问的端口号,比如我们想监听8090端口,就可以使用下面的命令:

dotnet AspnetcoreDeployDemo.dll  --urls http://*:8090

直接以控制台的方式部署程序,一般适合于我们自己开发调试程序,真实的生产环境中,不建议使用这种方式。这种方式是Kestrel服务器直接处理HTTP请求,在windows系统中,我们一般是把ASP.NET Core 程序部署在IIS上面,IIS作为反向代理服务器使用。下面我们看看如何部署到IIS上。

3、部署到IIS

在传统的.NET Framework中,ASP.NET程序发布到IIS上面,是由IIS的工作进程(w3wp.exe)托管的,在任务管理器中可以找到该进程。在ASP.NET Core程序中不再是由IIS工作进程托管,而是使用自托管Web服务器(Kestrel)运行,IIS则是作为反向代理的角色转发请求到Kestrel不同端口的ASP.NET Core程序中,然后将接收到的请求推送至中间件管道中,处理完请求后在将HTTP响应数据重新回写到IIS中,最终通过IIS转达到不同的客户端。在这过程中,最重要的角色便是AspNetCoreModuleV2(asp.net core 2.0以前版本中是AspNetCoreModuleV2,asp.net core 2.x版本是AspNetCoreModule,从3.0开始又改回了AspNetCoreModuleV2),它是IIS中的一个模块,HTTP请求进入到IIS之后便立即由它转发,并迅速重定向到ASP.NET Core项目中。因为IIS只是作为反向代理负责转发请求,不负责监听HTTP请求端口,所以不需要使用应用程序池来托管我们的代码。

电脑上面安装好了asp.net core 运行时以后,在IIS的模块里面会有AspNetCoreModule:

如何部署ASP.NET Core程序到Windows系统

双击“模块”,查看里面是否有AspNetCoreModule模块:

如何部署ASP.NET Core程序到Windows系统

接下来在IIS里面添加网站,如下图所示:

如何部署ASP.NET Core程序到Windows系统

最后点击“确定”按钮,网站及部署完成。我们在浏览器里面进行浏览:

如何部署ASP.NET Core程序到Windows系统

这样就可以访问了。

在ASP.NET Core 3.x以前版本中,部署完网站之后,我们还需要设置应用程序池,将.NET CLR版本设置为“无托管代码”,在ASP.NET Core 3.x开始的版本中,无需在设置应用程序池,部署完网站之后就可以直接访问了。我们也可以设置应用程序池为“无托管代码”,如下图所示:

如何部署ASP.NET Core程序到Windows系统

4、独立部署

上面的两种部署方式都是基于框架依赖发布后的文件进行部署的,我们在看看如何使用独立部署发布后的文件进行部署,我们看到发布后有一个exe文件:

如何部署ASP.NET Core程序到Windows系统

我们双击该exe文件,会看到直接以控制台的方式启动:

如何部署ASP.NET Core程序到Windows系统

这时可以在浏览器里面进行访问了。这样就可以部署了,真实生产中不建议使用这种方式。

感谢各位的阅读,以上就是“如何部署ASP.NET Core程序到Windows系统”的内容了,经过本文的学习后,相信大家对如何部署ASP.NET Core程序到Windows系统这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: 如何部署ASP.NET Core程序到Windows系统

本文链接: https://lsjlt.com/news/325272.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何部署ASP.NET Core程序到Windows系统
    这篇文章主要讲解了“如何部署ASP.NET Core程序到Windows系统”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何部署ASP.NET Core程序到Windo...
    99+
    2023-06-29
  • 部署ASP.NET Core程序到Windows系统
    目录一、创建项目二、发布项目1、框架依赖2、独立部署三、部署1、配置部署环境2、控制台方式部署3、部署到IIS4、独立部署一、创建项目 本篇文章介绍如何将一个ASP.NET Core...
    99+
    2024-04-02
  • 部署ASP.NET Core程序到Linux系统
    目录一、前言二、安装运行时环境1、在线安装2、离线包安装三、上传文件四、部署1、使用Kestrel启动2、使用Nginx作为反向代理一、前言 这篇文章我们将讲解如何将ASP.NET ...
    99+
    2024-04-02
  • 怎么部署ASP.NET Core程序到Linux系统
    这篇文章主要讲解了“怎么部署ASP.NET Core程序到Linux系统”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么部署ASP.NET Core程序到Linux系统...
    99+
    2023-06-29
  • 如何使用Docker部署ASP.NET Core程序
    这篇文章将为大家详细讲解有关如何使用Docker部署ASP.NET Core程序,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、前言这篇文章介绍如何将一个ASP.NET Core应用程序在Do...
    99+
    2023-06-29
  • 使用Docker部署ASP.NET Core程序
    一、前言 这篇文章介绍如何将一个ASP.NET Core应用程序在Docker中进行部署。开发工具使用的是Visual Studio 2019和VS Code。 二、使用Docker...
    99+
    2024-04-02
  • Linux上如何使用Docker部署ASP.NET Core应用程序
    这篇文章将为大家详细讲解有关Linux上如何使用Docker部署ASP.NET Core应用程序,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、创建1、创建应用程序使用ASP.NET Core...
    99+
    2023-06-29
  • Linux系统Docker 部署 ASP.NET Core应用的流程分析
    目录一、系统环境二、操作流程及途中遇到的问题一、系统环境 1、腾讯云轻量应用服务器CentOS7.6 二、操作流程及途中遇到的问题 1、SSH方式远程Linux ssh <u...
    99+
    2024-04-02
  • Linux上使用Docker部署ASP.NET Core应用程序
    一、创建 1、创建应用程序 使用ASP.NET Core创建一个MVC应用程序,并修改Home控制器Index视图代码: @{ ViewData["Title"] = "Ho...
    99+
    2024-04-02
  • 如何在MacOS+Linux+Nginx中发布和部署Asp.Net Core
    这篇文章主要介绍“如何在MacOS+Linux+Nginx中发布和部署Asp.Net Core”,在日常操作中,相信很多人在如何在MacOS+Linux+Nginx中发布和部署Asp.Net Core问题上存在疑惑,小编...
    99+
    2023-06-22
  • go程序如何部署到linux上运行
    这篇文章将为大家详细讲解有关go程序如何部署到linux上运行,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。go 语言版本:go1.9.2开发环境:win10部署环境:ubuntu 14.04.6一、wi...
    99+
    2023-06-15
  • 如何将php项目部署到linux系统上
    本篇内容介绍了“如何将php项目部署到linux系统上”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!第一步:安装必要的软件在部署 PHP 项...
    99+
    2023-07-05
  • 如何在Linux操作系统上部署Golang应用程序
    在今天的软件开发中,使用Linux作为操作系统的比例越来越高,而Golang语言则因为其高效、简洁和并发性能等特点,也被越来越多的开发者所青睐。在这篇文章中,我们将介绍如何在Linux操作系统上部署Golang应用程序。安装Golang环境...
    99+
    2023-05-14
  • 如何将asp.netcore程序部署到Linux服务器
    目录1.创建一个测试的asp.net core web api 项目2.准备一台云服务器或者虚拟机3.安装asp.net core runtime 运行时即可。4.使用dotnet和...
    99+
    2024-04-02
  • 如何在ASP.Net Core应用程序中使用Bootstrap4
    本篇内容介绍了“如何在ASP.Net Core应用程序中使用Bootstrap4”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!笔者...
    99+
    2023-06-26
  • Windows系统下如何使用nginx部署vue2项目
    这篇文章主要讲解了“Windows系统下如何使用nginx部署vue2项目”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Windows系统下如何使用nginx部署vue2项目”吧!第一步:下...
    99+
    2023-07-05
  • Linux系统如何部署ThinkPHP
    这篇文章主要介绍Linux系统如何部署ThinkPHP,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!ThinkPHP简介:ThinkPHP是为了简化企业级应用开发和敏捷WEB应用开发而诞生的。ThinkPHP从诞生以...
    99+
    2023-06-28
  • 如何使用Supervisor守护ASP.NET Core应用程序进程
    本文小编为大家详细介绍“如何使用Supervisor守护ASP.NET Core应用程序进程”,内容详细,步骤清晰,细节处理妥当,希望这篇“如何使用Supervisor守护ASP.NET Core应用程序进程”文章能帮助...
    99+
    2023-06-29
  • Linux系统中如何部署thinkphp
    这篇文章将为大家详细讲解有关Linux系统中如何部署thinkphp,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。ThinkPHP是为了简化企业级应用开发和敏捷WEB应用开发而诞生国产PHP开发框架,下面...
    99+
    2023-06-28
  • Linux系统中如何部署Docker
    这篇文章给大家分享的是有关Linux系统中如何部署Docker的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Docker 是一个开源的应用容器引擎,可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中...
    99+
    2023-06-28
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作