溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ASP.NETCore中怎么實現(xiàn)一個Kestrel服務器

發(fā)布時間:2021-07-15 14:25:14 來源:億速云 閱讀:467 作者:Leah 欄目:大數(shù)據(jù)

這篇文章給大家介紹ASP.NETCore中怎么實現(xiàn)一個Kestrel服務器,內(nèi)容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

Kestrel Web服務器的概述

Kestrel被認為是較新的ASP.NET應用程序的首選Web服務器(請參閱這篇文章與IIS比較, why you need both)。它j機遇 libuv library,與node.js使用的庫相同。Libuv支持事件驅(qū)動的編程風格。它的一些核心工具包括:

  • 非阻塞網(wǎng)絡支持

  • 異步文件系統(tǒng)訪問

  • 計時器

  • 子進程

它允許ASP.NET Core應用程序在其他跨平臺的Web服務器(如Jexus,Nginx和Apache)上輕松運行,而無需解決不同的啟動配置。通過使用Kestrel作為進程內(nèi)服務器, 即使有跨平臺支持,應用程序也將具有一致的處理(Startup (Main()Startup.ConfigireServices()Startup.Configure())

Kestrel Web服務器的工作原理

應用程序通常是為了響應人的行為而編寫的。使用事件驅(qū)動的編程,有一個循環(huán)來監(jiān)聽事件。然后觸發(fā)一個回調(diào)函數(shù)。為了減少SYS調(diào)用的數(shù)量,所有其他工作都在標準.NET工作線程的托管代碼中執(zhí)行。

Kestrel提供了一個事件循環(huán)和基于回調(diào)的I / O通知。Libuv管理從操作系統(tǒng)收集和監(jiān)視事件。此外,用戶可以在事件發(fā)生時注冊回調(diào)。所以,Kestrel使用libuv進行I / O工作,并支持運行多個事件循環(huán)。

由于它輕巧,Kestrel不允許你進行SSL termination,URL重寫或GZip壓縮,但是相同的輕量級設計使他比起其他服務器會更快。實際上,它比靜態(tài)和純文本操作的node.js快6倍。

Kestrel的好處

Kestrel支持.NET Core支持的所有平臺和版本。此外,它默認包含的ASP.NET Core新項目模板中,可以提供更好的請求處理的性能。在Visual Studio中創(chuàng)建新項目時,項目會自動配置為在Kestrel中運行。

如前所述,這不是一個功能齊全的網(wǎng)絡服務器,但這正是為什么它很快。如果您覺得需要速度,Kestrel就是答案 - 特別是因為它被設計用于ASP.NETCore的生產(chǎn)。

你可以做的是在一個功能更全面的網(wǎng)絡服務器(如IIS或NGNIX)之后運行它。您可以使用HttpPlatformHandler在IIS 后面運行它,或者在Visual Studio 后面使用HttpPlatformHandler在IIS Express 后面運行它。而且,您需要在ASP.NET Core項目中支持它,以便開發(fā)人員可以在任何支持的平臺上方便地運行它們。

現(xiàn)在,即使您不是跨平臺的,也可以直接從web服務器命令行上運行ASP.NET。

由于Kestrel不是一個全功能的Web服務器,您應該讓web程序在在IIS或NGNIX 之后運行(IIS;Jexus或者NGINX代理web程序,提供轉(zhuǎn)發(fā)到Kestrel的形式工作)。它旨在使ASP.NET盡可能快,但其管理安全性和提供靜態(tài)文件的能力有限。如果您使用的是Kestrel作為web服務器的ASP.NET Core,則 可以利用 Prefix來實現(xiàn)強大的代碼分析功能。

關于ASP.NETCore中怎么實現(xiàn)一個Kestrel服務器就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI