ASP.NET Core教程:ASP.NET Core 程序部署到Windows系统

这篇具有很好参考价值的文章主要介绍了ASP.NET Core教程:ASP.NET Core 程序部署到Windows系统。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、创建项目

本篇文章介绍如何将一个ASP.NET Core Web程序部署到Windows系统上。这里以ASP.NET Core WebApi为例进行讲解。首先创建一个ASP.NET Core WebApi项目,使用默认的Values控制器,这里使用Visual Studio 2019创建一个ASP.NET Core 3.1d的WebApi项目。

创建新项目的时候选项ASP.NET Core Web应用程序,如下图所示:

ASP.NET Core教程:ASP.NET Core 程序部署到Windows系统

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

ASP.NET Core教程:ASP.NET Core 程序部署到Windows系统

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

ASP.NET Core教程:ASP.NET Core 程序部署到Windows系统

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

ASP.NET Core教程: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教程:ASP.NET Core 程序部署到Windows系统

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

ASP.NET Core教程:ASP.NET Core 程序部署到Windows系统

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

ASP.NET Core教程:ASP.NET Core 程序部署到Windows系统

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

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

ASP.NET Core教程:ASP.NET Core 程序部署到Windows系统

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

ASP.NET Core教程:ASP.NET Core 程序部署到Windows系统

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

2、独立部署

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

ASP.NET Core教程:ASP.NET Core 程序部署到Windows系统

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

ASP.NET Core教程: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教程:ASP.NET Core 程序部署到Windows系统

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

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

ASP.NET Core教程:ASP.NET Core 程序部署到Windows系统

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

dotnet --info

如下图所示:

ASP.NET Core教程:ASP.NET Core 程序部署到Windows系统

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

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

net stop was /y
net start w3svc

如下图所示:

ASP.NET Core教程:ASP.NET Core 程序部署到Windows系统

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

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

ASP.NET Core教程:ASP.NET Core 程序部署到Windows系统

2、控制台方式部署

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

dotnet dll文件名称

如下图所示:

ASP.NET Core教程:ASP.NET Core 程序部署到Windows系统

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

ASP.NET Core教程:ASP.NET Core 程序部署到Windows系统

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

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

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

ASP.NET Core教程:ASP.NET Core 程序部署到Windows系统

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

ASP.NET Core教程:ASP.NET Core 程序部署到Windows系统

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

ASP.NET Core教程: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教程:ASP.NET Core 程序部署到Windows系统

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

ASP.NET Core教程:ASP.NET Core 程序部署到Windows系统

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

ASP.NET Core教程:ASP.NET Core 程序部署到Windows系统

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

ASP.NET Core教程:ASP.NET Core 程序部署到Windows系统

这样就可以访问了。

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

ASP.NET Core教程:ASP.NET Core 程序部署到Windows系统

4、独立部署

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

ASP.NET Core教程:ASP.NET Core 程序部署到Windows系统

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

ASP.NET Core教程:ASP.NET Core 程序部署到Windows系统

这时可以在浏览器里面进行访问了。这样就可以部署了,真实生产中不建议使用这种方式。文章来源地址https://www.toymoban.com/news/detail-402743.html

到了这里,关于ASP.NET Core教程:ASP.NET Core 程序部署到Windows系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • asp.net core 项目从本地部署到远程云服务器

    今天向大家详细介绍一下,如何将一个.net core项目部署到远程云服务器,我的服务器镜像为 window server 2019. 1.安装IIS 首先在服务器上安装IIS(我的是最新的iis10),我已经安装完毕,这个安装操作比较简单,自行谷歌。 安装完成后会看到下面的界面: 2.安装web deploy程序 该程序的功能: 它

    2023年04月22日
    浏览(48)
  • .NET Core 程序实现 Windows 系统 Development、Staging、Production 三种环境的无感部署

    日常开发中,程序的环境切换是相当频繁的了,如果不同环境中的某些参数不同,那就需要每次编辑之前手动进行修改,比较麻烦,效率低下。 本文将以 .NET Core WebAPI 项目的配置方法为例,分步骤实现根据环境变量的配置参数,自动读取对应配置文件中的特殊参数值,从而达

    2024年02月07日
    浏览(45)
  • 在IIS上部署你的ASP.NET Core Web Api项目及Swagger

    与ASP.NET时代不同,ASP.NET Core不再是由IIS工作进程(w3wp.exe)托管,而是使用自托管Web服务器(Kestrel)运行,IIS则是作为反向代理的角色转发请求到Kestrel不同端口的ASP.NET Core程序中,随后就将接收到的请求推送至中间件管道中去,处理完你的请求和相关业务逻辑之后再将HTTP响

    2024年02月10日
    浏览(52)
  • 使用 Asp.net core webapi 集成配置系统,提高程序的灵活和可维护性

    集成配置系统的主要目的是将应用程序的配置信息与代码分离,使得配置信息可以在不需要修改代码的情况下进行更改。这样可以提高应用程序的灵活性和可维护性。 ASP.NET Core 提供了一种灵活的配置系统,可以轻松地将配置信息从不同的来源加载到应用程序中,并且可以根

    2024年02月01日
    浏览(66)
  • ASP.NET Core:部署到 IIS

    本文章介绍如何在 IIS 服务器上托管 ASP.NET Core 应用。 在 IIS 服务器上安装 .NET Core 托管捆绑包。 捆绑包可安装 .NET Core 运行时、.NET Core 库和 ASP.NET Core 模块。 该模块允许 ASP.NET Core 应用在 IIS 后面运行。 使用以下链接下载安装程序: 当前 .NET Core 托管捆绑包安装程序(直接下

    2024年02月14日
    浏览(41)
  • 【服务器】ASP.Net Core(C#)创建Web站点

    简单几步实现本地ASP.Net.Core web 站点结合cpolar内网穿透工具实现远程访问 1. 创建站点 *环境搭建,这边测试,使用.NET 6.0 SDK,可以点击跳转到官网下载,下载后安装即可. 安装完成后,进入到某个文件夹,打开powershell执行下面命令,创建新的 Web 应用,名称叫:aspnetcoreapp 2. 运行站点 信任开

    2024年02月11日
    浏览(48)
  • .net6 core web项目发布部署到IIS,以Windows服务的形式部署启动

    一、修改Program.cs代码,注册为 Windows Service 如果不注册builder.Host.UseWindowsService(); 安装为window服务会启动报错 安装NuGet包 Microsoft.Extensions.Hosting.WindowsServices Program.cs代码 二、发布项目 1、以文件夹形式 2、目标运行时选对应的平台(本Coder是:winx-64) 3、文件夹选项:在发布前删

    2024年02月11日
    浏览(46)
  • ASP.Net Core Web API结合Entity Framework Core框架(API的创建使用,接口前端权限设置,前端获取API的Get,post方法)(程序包引用以及导入数据库)

    目录 1. Web Api 程序包引用 2. Web Api 的创建与Http类型的介绍 2.1 ASP.Net Core Web API项目的创建 2 .2  API接口的创建 2.3 HttpGet和HttpPost类型的区别 3.接口权限设置 4.HttpGet方法和HttpPOst方法 5.前端中用HttpGet/Poset获取接口数据 6.EF框架——配置数据库链接字符串(即将数据库中的表导入项

    2024年02月08日
    浏览(67)
  • .net core 项目部署linux系统全过程

      使用Xshell远程连接阿里云服务器 - 程序员大本营 使用Xshell远程连接阿里云服务器,程序员大本营,技术文章内容聚合第一站。 https://www.pianshen.com/article/2750375233/      配置完之后 绑定密钥对。   保存密钥文件到桌面。   家庭/学校免费 - NetSarang Website https://www.xshell.com/z

    2024年02月05日
    浏览(43)
  • 【ASP.NET Core 基础知识】--中间件--创建自定义中间件

    一、为什么需要自定义中间件 自定义中间件在ASP.NET Core中的应用主要有以下几个原因: 满足特定需求: 默认情况下,ASP.NET Core提供了许多内置的中间件来处理常见的任务,如身份验证、授权、静态文件服务等。然而,某些项目可能有特定的需求,需要定制化的处理流程,这

    2024年01月17日
    浏览(71)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包