前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ASP.NET Core 进程内(InProcess)托管(6)《从零开始学ASP.NET CORE MVC》:

ASP.NET Core 进程内(InProcess)托管(6)《从零开始学ASP.NET CORE MVC》:

作者头像
角落的白板报
发布2019-05-05 14:48:22
1.5K0
发布2019-05-05 14:48:22
举报
文章被收录于专栏:角落的白板报

本文出自《从零开始学ASP.NET CORE MVC》 推荐文章:ASP.NET Core 中的 Main方法

ASP.NET Core 进程内(InProcess)托管

在这个视频中我们将讨论

  • 在ASP.NET Core中的进程内(InProcess)托管模型
  • 什么是Kestrel服务器

当一个 ASP.NET Core 应用程序执行的时候,.NET 运行时会去查找 Main()方法,因为它是这个应用程序的起点。

然后,Main()方法调用静态类WebHost中的静态方法CreateDefaultBuilder()。 这个CreateDefaultBuilder()方法执行几个任务,如:

  • 将 Kestrel 用作 Web 服务器并启用 IIS 集成。
  • 从种配置源中加载配置。
  • 配置日志记录

在以后的课程中,我们将讨论 asp.net core 中可用的各种配置源,加载主机和应用程序配置信息以及配置日志记录等内容。

在本视频中,让我们了解CreateDefaultBuilder()方法用于配置和设置Web服务器的功能。 ASP.NET Core 应用程序可以托管在进程内(InProcess)或进程内(InProcess)中。 在本视频中,我们将讨论进程内(InProcess)托管,在下一个视频中,我们将讨论进程内(InProcess)托管。

进程内(InProcess)托管

NEW

若要配置 InProcess 宿主, 请将<AspNetCoreHostingModel>添加到应用的项目文件中, 其中的值为 InProcess

代码语言:javascript
复制
<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>

当我们选择使用一个可用的项目模板,创建一个新的ASP.NET Core项目时,该项目默认为所有的IIS和IIS Express的配置都是作为进程内托管(InProcess)。

在InProcess托管的情况下,CreateDefaultBuilder()方法调用UseIIS()方法并在IIS工作进程(w3wp.exe或iisexpress.exe)*内托管应用程序。

  • 从性能的角度来看,InProcess托管比OutOfProcess托管提供了更高的请求吞吐量。
  • 对于IIS,执行应用程序的进程名称是w3wp,对于IIS Express,它是iisexpress
  • 要获取执行应用程序的进程名称,请使用System.Diagnostics.Process.GetCurrentProcess().ProcessName
  • 当我们从Visual Studio运行项目时,它默认使用IISExpress。
  • IIS Express是IIS的轻量级自包含版本,针对应用程序开发进行了优化。我们不会将它用于生产。在生产中我们会使用IIS。
  • 我们会在后面的课程中带着大家,在IIS上部署ASP.NET Core 应用程序。

进程外(out-of-Process)托管

NEW

  • 有2个Web服务器 ,内部Web服务器和外部Web服务器。
  • 内部Web服务器是Kestrel, 外部Web服务器可以是IIS,Nginx或Apache。
  • 使用InProcess托管,只有一个Web服务器,承载asp.net Core应用程序的IIS。 因此,在内部和外部Web服务器之间,他们的代理和请求不没有性能的损失。

什么是Kestrel

Kestrel是ASP.NET Core的跨平台Web服务器。.NET Core支持的所有平台和版本都支持它。它默认包含在ASP.NET Core中作为内部服务器。 Kestrel本身可以用作边缘服务器,即面向互联网的Web服务器,它可以直接处理来自客户端的传入HTTP请求。

在Kestrel中,用于托管应用程序的进程是dotnet.exe。当我们使用.NET Core CLI(命令行界面)运行.NET Core应用程序时,应用程序使用Kestrel作为Web服务器。

.NET Core CLI是一个用于开发.NET核心应用程序的跨平台工具。使用CLI命令我们做:

  • 根据指定的模板创建新项目,配置文件或解决方案
  • 恢复.Net Core 项目所需的所有依赖项和工具包
  • 生成项目及其所有依赖项
  • 运行.net Core项目等等......

我们可以使用.NET Core CLI做很多事情。

简单说下CLI

使用.NET Core CLI运行我们的Asp.Net Core应用程序。

  • 启动Windows命令提示符
  • 将目录更改为包含asp.net Core 项目的文件夹,然后执行dotnet run命令
  • C:\ Projects \Source\repos\ StudentManagement \ StudentManagement > dotnet run

在.NET Core CLI 生成并运行项目之后,它会显示用于访问应用程序的URL。 在我的例子中,应用程序可以通过访问浏览器地址在 http:// localhost:5000 查看内容。

于Kestrel,用于托管和执行应用程序的进程是dotnet.exe

因此,当我们导航到http:// localhost:5000时,我们将看到显示进程名称dotnet

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-04-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 角落的白板报 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 在这个视频中我们将讨论
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档