胆囊息肉

注册

 

发新话题 回复该主题

在NET60中使用不同的托管模型 [复制链接]

1#
白癜风症状主要有哪些 http://m.39.net/pf/a_4834283.html

大家好,我是张飞洪,感谢您的阅读,我会不定期和你分享学习心得,希望我的文章能成为你成长路上的垫脚石,让我们一起精进。

本章是《定制ASPNET6.0框架系列文章》的第六篇。在本章中,我们将讨论如何在ASPNET6.0中自定义托管宿主。比如,托管选项和不同类型的托管,并了解一下IIS上的托管。限于篇幅,本章只是一个抛砖迎玉。

本章涵盖主题包括:

配置WebHostBuilder

配置Kestrel

配置HTTP.sys

IIS上的托管

在Linux上使用Nginx或Apache

本章涉及的服务端体系结构主题包括:

1准备

代码准备

我们先创建一个空运用:dotnetnewweb-nExploreHosting-oExploreHosting然后使用VSCode打开该项目:cdExploreHostingcode.

名词解释

Hosting有些地方叫宿主,有些地方叫托管,还有的地方叫承载,为了行文方便,我这里统一叫托管,我们知道他们是同一个意思就行。

2配置WebHostBuilder

与上一章一样,这个小节我们将重点放在Program.cs上。WebHostBuilder是托管的重要类,它是我们配置和创建Web托管的地方。以下代码是每个新创建的ASP.NETCoreWeb项目默认的代码:

varbuilder=WebApplication.CreateBuilder(args);varapp=builder.Build();app.MapGet("/",()="HelloWorld!");app.Run();

正如我们前面所了解的,默认框架已经帮我们配置了基本的内容,我们可以在在Azure或本地IIS上直接运行。显然以上的配置是最基础的,你完全可以覆写这些默认配置,包括托管的配置。

下面我们一起来看下Kestrel如何配置。

3配置Kestrel

创建好WebHostBuilder后,我们可以使用各种方法来配置builder。这里,我们只举例一种,即使用Startup类。

在第4章:使用Kestrel配置和自定义HTTPS中我提到,Kestrel是托管应用程序的一种选项,它内置于.NET的Web服务器,基于.NET套接字实现。以前,它是在libuv之上构建的,libuv与Node.js使用相同的web服务器。Microsoft删除了对libuv的依赖,并基于.NET套接字创建了自己的Web服务器Kestrel。

在上一章中,我们使用UseKestrel方法来配置Kestrel选项:

.UseKestrel((host,options)={//...})如上代码所示,第一个参数是WebHostBuilderContext,用于访问已配置的主机设置或配置本身。第二个参数是配置Kestrel的对象。下面的代码片段显示的是我们在上一章中所做的托管配置需要监听的访问

分享 转发
TOP
发新话题 回复该主题