欢迎大家阅读《朝夕Net社区技术专刊》第1期 原文是我在知乎发表的,现在在这里分享!

我们致力于.NetCore的推广和落地,为更好的帮助大家学习,方便分享干货,特创此刊!很高兴你能成为首期读者,文末福利不要错过哦!本文通过5大部分进行解读:

01PART Core3.1WebApi准备环境

本地演示环境:Visual Studio2019 --- Vsersion:16.4.4 + NetCore3.1.2

个人建议使用Vs2019 升级最新版即可!

Core环境下载地址:https://dotnet.microsoft.com/download/dotnet-core/3.1;SDK 3.1.102: 包含的运行时/.NET Core运行时3.1.2/http://ASP.NET Core运行时3.1.2 桌面运行时3.1.2

http://ASP.NET Core Runtime: 使您可以运行现有的Web /服务器应用程序。在Windows上,包含.NET Core Runtime和IIS支持的主机捆绑包。

02PART 创建项目:

图1

图2

03PART项目结构解读:

1.创建的CoreWebApi项目其实是一个控制台项目;

2.launchSettings.json就是配置项目启动类型的配置文件;

3.Controllers:控制器,创建Api就是从这里添加;

4.Startup:可以选择的包括ConfigureServices方法来配置应用程序的服务。必须包括一个 Configure 方法来创建应用程序的请求处理管ConfigureServices和Configure在用用程序启动时由运行时调用:

【如下图】

详解1

可以在项目中为不同的环境分别定义独立的启动类Startup(如, StartupDevelopment),系统启动时会选择适当的启动类。http://ASP.NET 并不关心 Startup 类是不是定义为 public,如果它符合命名规范,http://ASP.NET 将继续加载它。如果有多个 Startup 类,也不会触发异常,http://ASP.NET 将基于命名空间选择其中一个(匹配项目的根命名空间的启动类优先,否则使用第一个按字母排列的命名空间中的启动类)。

详解2

ConfigureServices 方法是可选的。在 Configure 方法之前调用,用来配置应用程序的服务。它的配置选项是按约定设置的。向服务容器添加服务,使他们在项目和配置方法中可用。这些服务是通过依赖注入或从IApplicationBuilder.ApplicationServices解决实现。最大的特性是,需要大量的设置,可用过IServiceCollection的扩展方法上添加[服务]。比方说要使用Swagger 就必须要先注册服务到容器;

详解3

web host通过启动类的构造函数提供了一些有效可用服务。应用程序还可以通过ConfigureServices增加额外的服务。主机配置的服务和ConfigureServices增加的额外的服务在整个应用程序中都是有效可用的。

04PART 新增控制器Api:

创建控制器的可能比较慢,均属正常,请耐心等待;

CoreWebApi 严格遵循RESTFull风格;

05PART 启动/部署/调试:

1.Vs启动webApi;不做详解;

2.命令启动:dotnet Zhaoxi.Core.WebApi.dll --urls="http://*:8004" -- ip="127.0.0.1" --port= 8004

注释:必须要定位到根目录下 然后CMD执行命令:dotnet dll文件全名称 --urls="http://*:端口号" --ip="自定义IP地址" --port= 端口号

3. 部署IIS,需要发布项目:发布成文件系统;

4.IIS增加网站:写入网站名称,物理路径指向刚刚发布的文件夹;

5.指向程序集---基本设置;

6.选择无代码托管:

注意:如果没有安装运行时需要下载运行时:

https://dotnet.microsoft.com/download/dotnet-core/3.1 选择以下安装;

7.安装完毕以后,安装之后在IIS模块会有一个:AspNetCoreModuleV2;

图1

图2

8.调用WebApi:即可,如果是命令启动;访问路径必须和命令启动指定的iP/端口一致;

下期预告

【朝夕Net社区技术专刊】第2期:Corre3.1WebApi配置集成日志/配置Swagger

【朝夕Net社区技术专刊】Core3.1 WebApi集群实战专题---WebApi环境搭建运行发布部署篇的更多相关文章

  1. 技术分享 | MySQL Group Replication集群对IP地址的限制导致的一些问题与解决办法

    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 1. 遇到问题 测试人员小玲准备在docker环境中部署MGR集群进行一些测试,她有三个容器,容器IP分别是: 172.3 ...

  2. 高负载集群实战之lvs负载均衡-技术流ken

    lvs简介 LVS的英文全称是Linux Virtual Server,即Linux虚拟服务器. 特点 跨平台:window,linux 作用 实现负载均衡 核心组件 ip_vs:linux的内核功能 ...

  3. MongoDB分片技术原理和高可用集群配置方案

    一.Sharding分片技术 1.分片概述 当数据量比较大的时候,我们需要把数分片运行在不同的机器中,以降低CPU.内存和Io的压力,Sharding就是数据库分片技术. MongoDB分片技术类似M ...

  4. Spring Security技术栈开发企业级认证与授权(一)环境搭建

    本项目是基于慕课网的Spring Security技术栈开发企业级认证与授权,采用IDEA开发,本文章用来记录该项目的学习过程. 慕课网视频:https://coding.imooc.com/clas ...

  5. 集群技术(三)MySQL集群深度解析

    什么是MySQL集群 MySQL集群是一个无共享的(shared-nothing).分布式节点架构的存储方案,其目的是提供容错性和高性能. 数据更新使用读已提交隔离级别(read-committedi ...

  6. 集群技术(二) MySQL集群简介与配置详解

    when?why? 用MySQL集群? 减少数据中心结点压力和大数据量处理(读写分离),采用把MySQL分布,一个或多个application对应一个MySQL数据库.把几个MySQL数据库公用的数据 ...

  7. 【运维技术】kafka三实例集群环境搭建及测试使用

    kafka三实例集群环境搭建及测试使用 单机搭建分为两部分:1. 软件安装启动 2. 软件配置 软件安装启动: # 切换到目录 cd /app # 获取kafka最新安装包,这边使用的是镜像地址,可以 ...

  8. 【运维技术】Zookeeper单机以及集群搭建教程

    Zookeeper单机以及集群搭建教程 单机搭建 单机安装以及启动 安装zookeeper的前提是必须有java环境 # 选择目录进行下载安装 cd /app # 下载zk,可以去官方网站下载,自己上 ...

  9. 【朝夕技术专刊】RabbitMQ路由解析(上篇)

    欢迎大家阅读<朝夕Net社区技术专刊> 我们致力于.NetCore的推广和落地,为更好的帮助大家学习,方便分享干货,特创此刊!很高兴你能成为忠实读者,文末福利不要错过哦! 上篇文章介绍了如 ...

随机推荐

  1. Minimum Euler Cycle(找规律+模拟)

    \(给你一个nnn个结点的完全有向图,求其字典序最小的欧拉回路,输出lll到rrr之间的结点为多少.\) 模拟一下n=5的时候 开始肯定是1-2-1-3-1-4-1-5 注意这个时候不能再从5到1,否 ...

  2. maven的安装及环境变量配置

    1.下载maven 2.解压至该路径 3. 新建环境变量MAVEN_HOME , 值为maven包点开路径 环境变量配置: 4. 编辑环境变量Path,追加%MAVEN_HOME%\bin\ 5.一路 ...

  3. SpringCloudStream学习(三)RabbitMQ中的惰性队列

    ​ 从RabbitMQ 3.6.0之后,有了 Lazy Queues 的概念-一个会尽早的将队列中的内容移动到磁盘的队列,并且只有当消费者需要的时候,才会将它们加载到内存中 ​ 惰性队列设计的一个主要 ...

  4. ActiveMQ 持久订阅者,执行结果与初衷相违背,验证离线订阅者无效,问题解决

    导读 最新在接触ActiveMQ,里面有个持久订阅者模块,功能是怎么样也演示不出来效果.配置参数比较简单(配置没几个参数),消费者第一次运行时,需要指定ClientID(此时Broker已经记录离线订 ...

  5. Qt自定义文本输入框实现支持输入度分秒和度两种格式(简易无限制输入)

    1.自定义文本输入框 #ifndef MYLINEEDIT_H #define MYLINEEDIT_H #include <QLineEdit> #include "ui_my ...

  6. thread模块—Python多线程编程

    Thread 模块 *注:在实际使用过程中不建议使用 thread 进行多线程编程,本文档只为学习(或熟悉)多线程使用. Thread 模块除了派生线程外,还提供了基本的同步数据结构,称为锁对象(lo ...

  7. Dotnet core使用JWT认证授权最佳实践(一)

    最近,团队的小伙伴们在做项目时,需要用到JWT认证.遂根据自己的经验,整理成了这篇文章,用来帮助理清JWT认证的原理和代码编写操作. 一.JWT JSON Web Token (JWT)是一个开放标准 ...

  8. vue在钩子中引用方法不成功

    在组建创建成功后调用methods里的方法fn1,失败,提示not a function: created(){ getData(){} } solution: created(){ this.get ...

  9. P2444 [POI2000]病毒 AC自动机

    P2444 [POI2000]病毒 #include <bits/stdc++.h> using namespace std; ; struct Aho_Corasock_Automato ...

  10. 剑指Offer01之二维数组中查找目标数

    剑指Offer之二维数组中查找目标数 题目描述 ​ 在一个二维数组中(每个一维数组的长度相等),每一行都是从左到右递增的顺序排序,每一列都是从上到下递增的顺序排序,输入这样一个二维数组和一个整数,判断 ...