ASP.NETCore的Kestrel服务器

原文:ASP.NETCore的Kestrel服务器

什么是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来实现强大的代码分析功能。

What is Kestrel Web Server? How It Works, Benefits, and More

Kestrel   官网介绍与简单使用??快点我,快点我

原文地址:https://www.cnblogs.com/lonelyxmas/p/10223144.html

时间: 2024-08-29 12:47:00

ASP.NETCore的Kestrel服务器的相关文章

[转帖]ASP.NET Core的Kestrel服务器

ASP.NET Core的Kestrel服务器 https://cloud.tencent.com/developer/article/1023247 在这篇文章中: 何时使用Kestrel和反向代理服务器 如何在ASP.NET Core应用中使用Kestrel URL 前缀 SSL的URL前缀 下一步 原文地址----Kestrel server for ASP.NET Core By Tom Dykstra, Chris Ross, and Stephen Halter Kestrel是一个

为ASP.NetCore程序启用SSL

紧接着上一篇搭建连接MySql的三层架构的ASP.NetCore2.0的WebApi的案例,这篇来实现为ASP.NetCore启用SSL支持 由于ASP.NetCore默认服务器Kestrel不像iis Express那样会自动生成本地证书,所以就需要手动构建pfx证书. 生成pfx证书 开发环境证书就用iis默认的本地证书即可,Cortana搜索:IIS,出现以下结果点击 进入管理器:点击服务器证书选项 选中以下本地默认证书后右键导出,指定路径和密码点击确认. 修改Program中BuildW

ASP.NETCore学习记录(一)

ASP.NETCore学习记录(一) asp.net core介绍  Startup.cs  ConfigureServices  Configure 0. ASP.NETCore 介绍 ASP.NETCore是一个新的开源和跨平台的框架,用于构建如Web应用.物联网(IoT)应用和移动后端应用等连接到互联网的基于云的现代应用程序.ASP.NET Core应用可运行于.NET Core和完整的.NET Framework之上.构建它的目的是为那些部署在云端或者内部运行的应用提 供一个优化的开发框

Asp.NetCore程序发布到CentOs(含安装部署netcore)--最佳实践

原文:Asp.NetCore程序发布到CentOs(含安装部署netcore)--最佳实践 环境 本地 win7 服务器:Virtual Box 上的Centos ssh工具: Xshell 文件传输: xftp 1.在本地创建asp.net core应用发布 1.1 使用Vs2017 新建一个asp.netcore项目 步骤略(一路next),当然你也可以用命令行创建. 1.2 发布项目 在项目路径下执行命令 dotnet publish –c release 先本地运行是否有问题,减少因为本

Asp.NetCore程序发布到CentOs(含安装部署netcore)--最佳实践(二)

原文:Asp.NetCore程序发布到CentOs(含安装部署netcore)--最佳实践(二) Asp.NetCore程序发布到CentOs(含安装部署netcore)--最佳实践(一) 接上一篇 3. Nginx配置反向代理 3.1 cnetos 安装nginx 首先,我们需要在服务器上安装Nginx.参考网址 3.1.1:添加Nginx存储库 要添加CentOS 7 EPEL仓库,请打开终端并使用以下命令: sudo yum install epel-release EPEL的全称叫 Ex

Asp.NetCore 2.2 WebApi 发布到IIS步骤及错误处理

一.创建一个Asp.NetCore WebApi 程序(话不多说) 二.发布 三.配置IIS 程序池中选中网站的程序池 --基本设置 浏览网站--浏览器 域名后面输入api/values 四.错误处理 1)如果是500.19 是 dotnet-hosting-2.2.1-win.exe 没装 去官网下一个与api netcore 版本一致的就可以. 2)如果是500的话,服务器错误,发布的时候选relase 原文地址:https://www.cnblogs.com/awaTangjay/p/10

从桌面到 Web - 二十几天学 ASP.NETCore 1

这么多年一直从事桌面开发,一直没有时间好好学学  web 开发.感觉自己就像从石器时代走来的古代类人猿.由于工作的调整,现在终于有时间学习一下 Web 开发.出于对技术和框架的熟悉和继承,决定还是学习微软的 Web 开发框架(虽然我一直认为java 是一种比C# 更优秀的语言,社区的活力远高于 C#,想想 eclipse 还是算了吧). 微软的 Web 开发框架从 ASP,ASP.NET,ASP.NET MVC 一直到现在的 ASP.NET Core一路走来,坏消息是没有一个熟悉的,好消息是 A

ASP.NET Core Web服务器

一.Http.sys HTTP.sys是仅能在Windows上运行的适用于ASP.NET Core的Web服务器. HTTP.sys运行在内核态中,极大减少了系统调用次数,运行效率很高:自带生存环境的安全,健壮性等特点:它也可以作为反向代理,因此它的功能更加强大,主要问题是只能运行在Windows下. 二.Kestrel Kestrel是一个跨平台的适用于ASP.NET Core的Web服务器.Kestrel是Web服务器,默认包括在ASP.NET Core项目模板中. Kestrel服务器运行

创建并设置ASP.NET的会话状态服务器(SQL State Server)

首先创建服务器数据库ASPState: C:\Windows\Microsoft.NET\Framework64\v4.0.30319>aspnet_regsql -ssadd -sstype p -E  -S .\SQLExpress 执行数据库脚本Script:USE ASPStateGOCREATE USER [adr] FOR LOGIN [adr] WITH DEFAULT_SCHEMA=[dbo]GOEXEC sp_addrolemember  'db_datareader', 'a