【朝夕Net社区技术专刊】Core3.1 WebApi集群实战专题---WebApi环境搭建运行发布部署篇
欢迎大家阅读《朝夕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
最新文章
- 推荐Linux管理员不可不知十大PHP安全要点 - SCutePHP
- Problem with WinRM on Exchange 2013 Management Shell and Exchange Toolbox on a new exchange 2013 with CAFE and BE on single server installation
- iOS开发之图片分辨率与像素对齐
- 常见Android Native崩溃及错误原因
- HBase与MongDB等NoSQL数据库对照
- STAF自动化测试框架
- sed 替换
- net farmework 4安装不了 原因是 HRESULT 0xc8000222
- Python之路【第八篇】:堡垒机实例以及数据库操作
- SQL对Xml字段的操作
- IOC框架Ninject实践总结
- ListView.setOnItemClickListener无效
- Java基础学习笔记九 Java基础语法之this和super
- 福州大学W班-团队作业-随堂小测(同学录)成绩
- Ubuntu 16.04 + ROS Kinetic 机器人操作系统学习镜像分享与使用安装说明
- Beanstalkd 一个高性能分布式内存队列系统
- final关键字的几种用法
- JavaScript Node节点笔记
- ES6-你不知道的箭头函数
- ASP.NET MVC概述及第一个MVC程序
热门文章
- lambda表达式入门详解
- 201771010113 李婷华 《面向对象程序设计(java)》第十五周总结
- 【带着canvas去流浪(15)】threejs fundamentals翻译系列1-scene graph
- Mysql常用sql语句(20)- 子查询重点知识
- 多线程高并发编程(9) -- CopyOnWrite写入时复制
- JMeter-结合BeanShell生成MD5加密数据写入数据库
- js对页面中的内容进行拼音搜索,只对后台已经传过来的页面数据进行索引
- 使用plupload实现多文件上传,自定义参数
- 这或许是最详细的JUC多线程并发总结
- React:form