目录
  • 安装asp.net core托管捆绑包
    • 进程内托管(iis http 服务器)
    • 进程外托管(kestrel服务器)

      介绍

      internet information services (iis) 是一种灵活、安全且可管理的 web 服务器,用于托管 web 应用(包括 asp.net core)。虽然我们的程序可以跨平台了,不过还是有些服务是部署在windows服务器下的,下面我们就从头开始部署下我们的程序到iis.

      本次示例环境:windows server 2012 r2 、vs2019、mysql、.net5

      安装环境

      支持平台

      • windows 7 或更高版本
      • windows server 2012 r2 或更高版本

      本次代码将安装在windows server 2012 r2 版本上,感觉这个版本使用的公司还不少。

      安装asp.net core托管捆绑包

      安装的文件应该和项目对应的版本相同,现在我项目使用的.net版本是5,那么我应该也用5的,下载地址是:

      安装其他版本的请参考官网地址:.net core托管捆绑包

      捆绑包可安装 .net core 运行时、.net core 库和 asp.net core 模块。 该模块允许 asp.net core 应用在 iis 运行。

      安装后查看应用程序目录

      发布项目

      新建一个net5 webapi程序,当前程序主要包含一个用户控制器(包含用户信息的增删改查)并且连接mysql数据库。

      项目结构如下

      源码地址:https://gitee.com/azrng/my-example 需要自取

      通过vs2019发布我们的项目,然后将发布后的项目拷贝到要部署的服务器上面。

      发布后如下

      为了正确设置 asp.net core 模块,web.config 文件必须存在于已部署应用的根路径中。里面可以设置一些环境、日志等配置。

      托管方式

      进程内托管(iis http 服务器)

      自 asp.net core 3.0 起,默认情况下已为部署到 iis 的所有应用启用进程内托管。

      进程内托管在与其 iis 工作进程相同的进程中运行 asp.net core 应用。 进程内承载相较进程外承载提供更优的性能,因为请求并不通过环回适配器进行代理,环回适配器是一个网络接口,用于将传出的网络流量返回给同一计算机。

      该图说明了 iis、asp.net core 模块和进程内托管的应用之间的关系

      显式配置进行内托管,需要在项目文件(.csproj)中增加如下配置

      <propertygroup>
        <aspnetcorehostingmodel>inprocess</aspnetcorehostingmodel>
      </propertygroup>

      进程外托管(kestrel服务器)

      由于运行 asp.net core 进程与 iis 工作进程分开,所以asp.net core 模块会负责进程管理。

      该图说明了 iis、asp.net core 模块和进程外托管的应用之间的关系

      进程外托管配置,在项目文件 ( .csproj) 中将 属性的值设置为 outofprocess

      <propertygroup>
        <aspnetcorehostingmodel>outofprocess</aspnetcorehostingmodel>
      </propertygroup>

      关于两种托管方式的差异:

      部署项目

      将项目进行发布,然后拷贝到我们的服务器一个文件夹内。

      打开iis添加网站,选择物理路径为我们项目文件

      修改应用程序池为无托管模式

      启动程序转到swagger页面

      因为当前我并没有连接数据库,直接调用接口应该报错,我们看下错误日志。启动输出日志

      说明我们项目已经部署成功了

      如果出现了错误可以查看点此处查看常见错误解决方案:

      题外话:当初部署2.1版本时候,windows server 2012r2需要打好几个补丁,并且需要重启多次,没想到这次安装net5这么顺利(服务器是从朋友那借的,我自己的是linux),如果你所在公司需要部署.net,还是推荐linux进行部署。

      参考文档

      到此这篇关于iis部署.net5的实现步骤的文章就介绍到这了,更多相关iis部署.net5 内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!