欢迎光临
我们一直在努力

7.ASP.NETCoreInProcessHosting

这篇文章,我们一起学习ASP.NET Core InProcess Hosting.这篇文章主要讨论下面几个观点:

我们打开之前创建的空模板的ASP.NET Core项目,前面已经知道了ASP.NET Core创建了一个Program类,其中有一个Main方法。

当我们执行ASP.NET Core应用程序的时候,.NET运行时就会去寻找Main方法,Main方法是ASP.NET Core应用程序的入口。

在上面的图片中,你可以发现,首先调用的是CreateHostBuilder方法,然后CreateHostBuilder调用Host类中静态的CreateDefaultBuilder方法,也就是CreateDefaultBuilder方法创建了主机,托管了我们的ASP.NET Core 应用程序。

CreateDefaultBuilder方法做了哪些事情?

除了创建主机,CreateDefaultBuilder方法还做了下面几件事情:

我们来讨论一下,CreateDefaultBuilder方法在配置创建web服务器的时候,做了哪些事情。从主机的观点来看,一个ASP.NET Core应用程序可以有两种托管方式,一种是InProcess托管,另外一种就是OutOfProcess托管。这篇文章将InProcess托管,后面会有文章讲到OutOfProcess托管。

怎样在ASP.NET Core中配置InProcess托管

从性能的的观点来看,进程内托管模型比OutOfProcess托管模型提供了更高的请求吞吐量。在IIS中托管,使用的就是w3wp.如果使用IIS Express托管那么进程的名字就是iisexpress.

当我们运行程序,浏览器中看到的结果是:Hello World!

这是因为我们在Statrup中有下面的代码:

为了能显示进程的名字,需要这样写:System.Diagnostics.Process.GetCurrentProcess().ProcessName

然后运行,在浏览器中是这样的:

这是因为我们默认使用Visual Studio运行程序的时候,选项是IISExpress

IIS Express是一个轻量级的,自托管的IIS,它简化了Web应用程序的开发。最重要的一点需要记住:我们仅仅在开发阶段使用IISExpress,在生产阶段我们使用IIS。接下来的文章中,我将介绍如何在IIS中发布我们的ASP.NET Core应用程序。

OutOfProcess Hosting

在OutOfProcess hosting中有两种web服务器:

内部服务器就是Kestrel,外部服务器就是IISNginx或者Apache

在InProcess 托管模型中,仅仅只有一个web服务器,也就是IIS。所以在InProcess 托管模型中,我们不会存在在外部服务器和内部服务器之间通讯导致的性能损耗。这也就是InProcess模型比OutOfProcess模型高的多的请求吞吐量的原因。

在接下来的文章中,我将会讲到ASP.NET Core应用程序中的 Kestrel Web服务器。这篇文章向大家解释了ASP.NET Core InProcess Hosting托管模型。希望能帮到你!

赞(0)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:7.ASP.NETCoreInProcessHosting
文章链接:https://www.jmwz.net/1718.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址