介绍

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进行部署。

参考文档

https://docs.microsoft.com/zh-cn/aspnet/core/host-and-deploy/iis/?view=aspnetcore-5.0

微信公众号

IIS部署.Net5全流程的更多相关文章

  1. 从 HTTP 到 HTTPS - IIS 部署免费 HTTPS

    这篇文章首发于我的个人网站:听说 - https://tasaid.com/,建议在我的个人网站阅读,拥有更好的阅读体验. 这篇文章与 博客园 和 Segmentfault 共享. 前端开发QQ群:3 ...

  2. 全球首个全流程跨平台界面开发套件,PowerUI分析

    一.       首个全流程跨平台界面开发套件,PowerUI正式发布 UIPower在DirectUI的基础上,自主研发全球首个全流程跨平台界面开发套件PowerUI(PUI)正式发布,PowerU ...

  3. 基于Jenkins的开发测试全流程持续集成实践

    今年一直在公司实践CI,本文将近半年来的一些实践总结一下,可能不太完善或优美,但的确初步解决了我目前所在项目组的一些痛点.当然这仅是一家之言也不够完整,后续还会深入实践和引入Kubernetes进行容 ...

  4. 如何使用 CODING 实践 DevOps 全流程

    你好,欢迎使用 CODING!这份最佳实践将帮助你通过 CODING 研发管理系统来更好地实践 DevOps 流程. DevOps 的本质是打破各个部门之间的隔阂,打通企业的前中后台,推进跨部门协作. ...

  5. 一张图轻松掌握 Flink on YARN 应用启动全流程(上)

    Flink 支持 Standalone 独立部署和 YARN.Kubernetes.Mesos 等集群部署模式,其中 YARN 集群部署模式在国内的应用越来越广泛.Flink 社区将推出 Flink ...

  6. Docker 部署net5程序

    1.前言 本文讲述使用docker容器部署.net5项目.实现跨平台. 部署环境:docker 容器.liunx系统.这里采用VmWare虚拟机.并采用MobaXterm工具实现终端连接linux系统 ...

  7. Java对接拼多多开放平台API(加密上云等全流程)

    前言 本文为[小小赫下士 blog]原创,搬运请保留本段,或请在醒目位置设置原文地址和原作者. 作者:小小赫下士 原文地址:Java对接拼多多开放平台API(加密上云等全流程) 本文章为企业ERP(I ...

  8. AI全流程开发难题破解之钥

    摘要:通过对ModelArts.盘古大模型.ModelBox产品技术的解读,帮助开发者更好的了解AI开发生产线. 本文分享自华为云社区<[大厂内参]第16期:华为云AI开发生产线,破解AI全流程 ...

  9. MindStudio模型训练场景精度比对全流程和结果分析

    摘要:MindStudio是一套基于华为昇腾AI处理器开发的AI全栈开发平台 本文分享自华为云社区<MindStudio模型训练场景精度比对全流程和结果分析>,作者:yd_24730208 ...

随机推荐

  1. C#无边框窗体拖动代码

    1.重写 protected override void WndProc(ref Message m) { if (m.Msg == 163 && this.ClientRectang ...

  2. IPFS是什么?IPFS与Filecoin有什么关系?

    Filecoin 基于 IPFS 的去中心化存储网络,是 IPFS 上唯一的激励层,是一个基于区块链技术发行的通证.Filecoin 翻译过来就是文件币,简称为 FIL. 在 FIlecoin 网络中 ...

  3. 第一个win32程序

    vs2017下自动创建的窗口程序 // win_test.cpp : 定义应用程序的入口点. // #include "framework.h" #include "wi ...

  4. vue-router 监控全局路由,在路由中改变vuex中的状态值

  5. OOUnit3Summary

    一.JML基础梳理及工具链 jml语言基础 JML的全称是Java Modeling language,是一种行为接口规格语言,通过JML及其支持工具,不仅可以基于规格自动构造测试用例,还可用SMT ...

  6. JFX11+IDEA跨平台打包发布的完美解决办法

    1 概述 IDEA2020.1的文档中提到只有JFX8的工程才支持打成jar包,并且,如果直接使用Build Artifacts的话,会如下提示: IDEA文档有提到这个的解决办法,是使用一些第三方工 ...

  7. Spring Boot超简单的测试类demo

    1 概述 Spring Boot结合Junit的简单测试类demo,流程是先引入依赖,接着编写测试类测试运行即可. 2 依赖 <dependency> <groupId>org ...

  8. kube-batch(一)安装

    安装 官方:https://github.com/kubernetes-sigs/kube-batch 下载镜像 安装 官方:https://github.com/kubernetes-sigs/ku ...

  9. struct 模块

    1. Struct 简介 2. Struct 代码示例 2.1 struct.pack 2.2 struct.unpack 2.3 struct.calcsize 1. Struct 简介 当 pyt ...

  10. 概A第一章测试

    ·  问题 1√ 得 10 分,满分 10 分       A与B不能同时发生,表明A与B互不相容.               ·  问题 2× 得 10 分,满分 10 分       A与B互逆 ...