什么是Kestrel服务器

Kestrel是开源的(GitHub提供的源代码),事件驱动的异步I / O服务器,用于在任何平台上托管ASP.NET应用程序。这是一个监听服务器和一个命令行界面。您将侦听服务器安装在Windows或Linux服务器上,并在计算机上安装命令行界面(安装.netcore会自动一整套安装)。(Kestrel发音: ['kestr(ə)l])

它是与ASP.NET Core一起由微软推出的。所有ASP.NET Core应用程序都使用新的MVC框架和Kestrel Web服务器。这些新的应用程序可以运行在完整的.NET Framework或.NET Core上。

Kestrel Web服务器的概述

Kestrel被认为是较新的ASP.NET应用程序的首选Web服务器(请参阅这篇文章与IIS比较, why you need both)。它j机遇 libuv library,与node.js使用的库相同。Libuv支持事件驱动的编程风格。它的一些核心工具包括:

  • 非阻塞网络支持

  • 异步文件系统访问

  • 计时器

  • 子进程

它允许ASP.NET Core应用程序在其他跨平台的Web服务器(如Jexus,Nginx和Apache)上轻松运行,而无需解决不同的启动配置。通过使用Kestrel作为进程内服务器, 即使有跨平台支持,应用程序也将具有一致的处理(Startup (Main()Startup.ConfigireServices()Startup.Configure())

Kestrel Web服务器的工作原理

应用程序通常是为了响应人的行为而编写的。使用事件驱动的编程,有一个循环来监听事件。然后触发一个回调函数。为了减少SYS调用的数量,所有其他工作都在标准.NET工作线程的托管代码中执行。

Kestrel提供了一个事件循环和基于回调的I / O通知。Libuv管理从操作系统收集和监视事件。此外,用户可以在事件发生时注册回调。所以,Kestrel使用libuv进行I / O工作,并支持运行多个事件循环。

由于它轻巧,Kestrel不允许你进行SSL termination,URL重写或GZip压缩,但是相同的轻量级设计使他比起其他服务器会更快。实际上,它比静态和纯文本操作的node.js快6倍。

Kestrel的好处

Kestrel支持.NET Core支持的所有平台和版本。此外,它默认包含的ASP.NET Core新项目模板中,可以提供更好的请求处理的性能。在Visual Studio中创建新项目时,项目会自动配置为在Kestrel中运行。

如前所述,这不是一个功能齐全的网络服务器,但这正是为什么它很快。如果您觉得需要速度,Kestrel就是答案 - 特别是因为它被设计用于ASP.NETCore的生产。

你可以做的是在一个功能更全面的网络服务器(如IIS或NGNIX)之后运行它。您可以使用HttpPlatformHandler在IIS 后面运行它,或者在Visual Studio 后面使用HttpPlatformHandler在IIS Express 后面运行它。而且,您需要在ASP.NET Core项目中支持它,以便开发人员可以在任何支持的平台上方便地运行它们。

现在,即使您不是跨平台的,也可以直接从web服务器命令行上运行ASP.NET。

由于Kestrel不是一个全功能的Web服务器,您应该让web程序在在IIS或NGNIX 之后运行(IIS;Jexus或者NGINX代理web程序,提供转发到Kestrel的形式工作)。它旨在使ASP.NET尽可能快,但其管理安全性和提供静态文件的能力有限。如果您使用的是Kestrel作为web服务器的ASP.NET Core,则 可以利用 Prefix来实现强大的代码分析功能。

原文地址:https://www.cnblogs.com/xiaoliangge/p/8387772.html


.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com 

ASP.NETCore的Kestrel服务器相关推荐

  1. ASP.NET Core的Kestrel服务器

    原文地址----Kestrel server for ASP.NET Core By Tom Dykstra, Chris Ross, and Stephen Halter Kestrel是一个基于l ...

  2. AServer - 基于Asp.net core Kestrel的超迷你http服务器

    AServer是基于ASP.NET Core Kestrel封装的一个超迷你http服务器.它可以集成进你的Core程序里,用来快速的响应Http请求,而不需要集成整个ASP.NET Core MVC ...

  3. ASP.NET Core Web服务器 Kestrel和Http.sys 特性详解

    1.1. 名词解释 内核态: CPU可以访问内存所有数据, 包括外围设备, 例如硬盘, 网卡. CPU也可以将自己从一个程序切换到另一个程序. 用户态: 只能受限的访问内存, 且不允许访问外围设备. ...

  4. [转帖]ASP.NET Core Web服务器 Kestrel和Http.sys 特性详解

    ASP.NET Core Web服务器 Kestrel和Http.sys 特性详解 https://www.cnblogs.com/vipyoumay/p/7525478.html ASP.NET C ...

  5. kestrel web服务器性能对比,Asp.Net Core 3.0 Kestrel服务器下 高性能 WebSocket Server

    最近研究.net core 的各种高性能类型,内存池之类的东西,基于kestrel 服务器的websocket ,写个例子练下手 把原生的Websocket用ArrayPool,Memory改造了下, ...

  6. ASP.NETCore学习记录(一)

    ASP.NETCore学习记录(一) asp.net core介绍  Startup.cs  ConfigureServices  Configure  0. ASP.NETCore 介绍 ASP.N ...

  7. 如何在ASP.NetCore增加文件上传大小

    关注架构师高级俱乐部 开启架构之路 不定期福利发放哦~ 架构师高级俱乐部 读完需要 7 分钟 速读仅需 3 分钟 / 如何在核心中增加文件 ASP.NET 大小 / 从ASP.NET 2.0开始最大请 ...

  8. 跟我一起学.NetCore之Asp.NetCore启动流程浅析

    前言 一个Asp.NetCore项目,知道大概的启动流程是有必要的,比如后续遇见配置信息覆盖等相关问题时也大概知道是什么原因,了解原因之后,再去搜索引擎找答案,否则目标不明确,茫茫人海怎么会一下找到自 ...

  9. Asp.NetCore轻松学-部署到 IIS 进行托管

    前言 经过一段时间的学习,终于来到了部署服务这个环节,.NetCore 的部署方式非常的灵活多样,但是其万变不离其宗,所有的 Asp.NetCore 程序都基于端口的侦听,在部署的时候仅需要配置侦听地 ...

最新文章

  1. JS自动插入分号机制ASI
  2. 计算机汉字救亡运动简史丨视频
  3. 【Android 逆向】IDA 工具使用 ( 同步指定的 IDA View 视图 | Hex View 数据格式 | 过滤设置 )
  4. Servlet+Tomcat制作出第一个运行在Tomcat上的Java应用程序
  5. 中国研制600公里时速磁悬浮:北京到上海,仅需3.5小时左右
  6. Java实现Redis分布锁
  7. Java中工程、包、类介绍
  8. ubuntu16.04安装ROS
  9. 如何解决微服务的数据一致性分发问题
  10. 朋友圈设置成昨天发的_如何让你的朋友圈骚到脱颖而出?
  11. Hibernate上路_18-Hibernate查询方式
  12. 御剑情缘服务器维护吗,御剑情缘常见问题 解决方法分享
  13. 如何使用计算机检测网络正常使用,如何测试网速? 本地测网速的几种方法分享...
  14. WSO2 Micro Integrator环境安装及部署
  15. 架构师技术精华文章汇总
  16. Django 中文本地化汉化方法
  17. 华为十年,总结出的12条经验!(作者是一级部门总监,华为副总裁)
  18. 哈佛大学教授:Web3如何重构被巨头破坏公平性的互联网
  19. RPG Maker MV之起始队伍设置
  20. 西门子PLC S7-1200和Labview以太网通讯通讯周期20MS

热门文章

  1. 美链BEC合约漏洞技术分析 1
  2. 二 面向对象三大特性
  3. Spring Boot 使用Redis
  4. SON Web Token设计单点登录系统
  5. 使用ABBYY FineReader进行自动图像预处理
  6. 【软件周刊】D语言卷土重来,Vue.js 应获 1024 个赞,小薇可以一键启动了
  7. Mac怎么不能拷贝文件到U盘
  8. 在此之前的软件系统做开发—需求的研究框架
  9. 【Blog.Core开源】网关统一集成下游服务文档
  10. EasyNetQ操作RabbitMQ