iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > ASP.NET >ASP.NET Core托管模型CreateDefaultBuilder()方法
  • 770
分享到

ASP.NET Core托管模型CreateDefaultBuilder()方法

2024-04-02 19:04:59 770人浏览 泡泡鱼
摘要

让我们讨论一下 CreateDefaultBuilder() 方法究竟对配置和设置 WEB 服务器的作用。从托管的角度来看,一个asp.net Web 应用程序可以通过两种方式托管,

让我们讨论一下 CreateDefaultBuilder() 方法究竟对配置和设置 WEB 服务器的作用。从托管的角度来看,一个asp.net Web 应用程序可以通过两种方式托管,即进程托管(InProcess)或进程外托管(OutOfProcess)。

注:当我们使用任何模板创建新 ASP.net core Web 应用程序时,默认情况下,使用InProcess 托管创建项目文件,该托管用于在 IIS 或 IIS Express 方案中托管应用程序。

如何验证是否在进程内?

为了验证上面的观点,打开项目属性。右键单击项目,然后从上下文菜单中选择属性选项。打开属性窗口后,选择"调试"并查看"托管模型"下拉列表的值,如下图所示。下拉列表包含三个值,即默认值(进程内)、进程内和进程外。

那么, 确认默认情况下它使用"进程中"托管模型。

如何在ASP.net core中配置InProcess托管?

要为 ASP.Net Core Web 应用程序配置 InProcess 托管,只有一个简单的设置,只需将 元素添加到值为InProcess 的应用程序项目文件中。为此,只需从解决方案资源管理器右键单击应用程序,然后单击上下文菜单中的"编辑项目文件"选项,如下代码所示。

打开应用程序项目文件后,请对其进行修改,如下所示。此处添加元素并将其值设置为 InProcess。该节点也可以是OutOfProcess。

将托管模型设置为 InProcess 时会发生什么?

在 InProcess 托管的情况下(即当 CreateDefaultBuilder() 将值视为项目文件中 AspnetcoreHostingModel 元素的 InProcess 时),场景后面的 CreateDefaultBuilder() 方法内部调用 UseIIS() 方法。然后在 IIS 工作程序(即 iIS 的 w3wp.exe 和 Iisxpress.exe 的 IISExpress)中托管应用程序。

从性能的角度来看,InProcess 托管模型提供的请求吞吐量明显高于 OutOfProcess 托管模型。

在 IIS 中,将用于执行应用程序的进程名称是 w3wp。同样,如果是 IIS Express,则进程名称将是 iisexpress。

如何确定是否在InProcess进程下执行?

默认情况下, 如果您要运行该应用程序,那么您将在浏览器中看到以下 “Hello World!” 输出。

下面, 标记了输出“Hello World”位置的代码片段, 位于Startup类的Configure()方法中, 如下所示。

为了确认该应用程序是在InProcess进程下执行, 将"Hello World!" 修改为显示当前的进程名称, 通过调用: System.Diagnostics.Process.GetCurrentProcess().ProcessName获取当前的进程名称, 如下所示。

再次启动程序, 将在浏览器中显示以下信息, 如下所示。

这是因为默认情况下,Visual Studio 在运行应用程序时使用 IISExpress,如下图所示。

什么是 IIS Express?

IIS Express 是 IIS 的轻量级自包含版本。它针对 Web 应用程序开发进行了优化。您需要记住的最重要的一点是,我们仅在开发中使用 IIS Express,而不是生产。在生产中,我们通常使用 IIS。

为什么InProcess比OutOfProcess提供更好的性能?

在进程外(OutOfProcess)托管的情况下,有 2 台 Web 服务器

一个内部 Web 服务器一个外部 Web 服务器。

内部 Web 服务器称为Kestrel,外部Web 服务器可以是IIS、Nginx****或 Apache。使用 InProcess 托管模型时,只有一个Web 服务器,即 IIS。因此,对于 InProcess 托管模型,我们在内部和外部 Web 服务器之间导航请求没有性能损失。这就是 InProcess 托管模型提供比 OutOfProcess 托管模型更高的请求吞吐量的原因。

InProcess Hosting(进程托管)

在上面的内容讲到, 我们可以通过右键选择属性, 更改应用程序的托管模型, 也可以通过右键编辑项目文件编辑节点来设置, 如下所示。

在ASP.net Core中,使用 Inprocess 托管模型,我们的应用程序将在 IIS 工作程序中托管。最重要的一点,需要记住的是,我们只有一个Web服务器,即 IIS服务器的情况下,InProcess托管,这将托管我们的应用程序,如下图所示。

什么是Kestrel Web 服务器?

ASP.NET Core是一个跨平台框架。 这意味着它支持在不同类型的操作系统(例如windowslinuxMac)上开发和运行应用程序。

Kestrel是ASP.NET Core应用程序的跨平台Web服务器。 这意味着该服务器支持ASP.NET Core支持的所有平台和版本。 默认情况下,它包含在.NET Core应用程序中作为内部Web服务器。

Kestrel Web服务器通常用作边缘服务器,即面向Internet的Web服务器,它直接处理来自客户端的传入Http请求。 对于Kestrel Web服务器,用于承载和运行ASP.NET Core应用程序的进程名称是项目名称。

如何使用 Kestrel Web 服务器运行应用程序?

在使用 Kestrel 服务器运行应用程序之前,让我们首先打开应用程序的属性文件夹中的launchSettings.JSON文件。打开launchSettings.json 文件后,默认情况下,您将找到以下代码。

在这里,您可以看到,我们有两个部分。 一种用于IIS Express(IIS服务器),另一种用于Kestrel服务器。 在Visual Studio中,您可以找到上述两个配置文件(IIS Express和FirstCoreWebApplication),如下所示。

如果选择 IIS Express,则它将使用 IIS 服务器,如果您选择 FirstCoreWeb 应用程序,则它将使用 Kestrel 服务器。

使用 IIS Express 运行应用程序:

如果您使用 IIS Express 运行应用程序,则它将使用启动设置.json 文件中提及的 URL 和端口号。若要证明这使用 IIS Express 运行应用程序,请参阅如下所示的输出(左边是配置文件、右边是浏览器输出)。

使用 Kestrel 服务器运行应用程序:

为了使用 Kestrel 服务器在 Visual Studio 中运行应用程序,首先,您需要修改你的启动方式为你当前的应用程序名称,如下所示。

选择 应用程序方式启动后,现在运行该应用程序。在这里,我们需要观察两件事。首先,它将启动命令提示符并使用 Kestrel 服务器托管应用程序,如下所示。在这里,您需要关注 URL 和端口号,并且应该是launchSettings.json文件的WebApplication4(这里根据您实际的程序名称显示)配置文件中提到的URL和端口号。

请参阅如下所示的输出(左边是配置文件、右边是浏览器输出以及打开的.NETCLI输出窗口)。

注:在这个的示例中,对于 IIS Express,端口号为 12166,辅助进程为 iisexpress,而对于 Kestrel 服务器,端口号为 5000,辅助进程名称为 WebApplication4 应用程序(它只不过是您的应用程序名称)。

到此这篇关于ASP.NET Core托管模型CreateDefaultBuilder()方法的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: ASP.NET Core托管模型CreateDefaultBuilder()方法

本文链接: https://www.lsjlt.com/news/138535.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • ASP.NET Core托管模型CreateDefaultBuilder()方法
    让我们讨论一下 CreateDefaultBuilder() 方法究竟对配置和设置 Web 服务器的作用。从托管的角度来看,一个ASP.NET Web 应用程序可以通过两种方式托管,...
    99+
    2024-04-02
  • ASP.NET Core使用EF创建模型的方法
    这篇文章主要介绍“ASP.NET Core使用EF创建模型的方法”,在日常操作中,相信很多人在ASP.NET Core使用EF创建模型的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”A...
    99+
    2023-06-29
  • ASP.NET Core MVC中的模型(Model)
    目录1.模型绑定2.使用模型绑定3.通过特性自定义模型绑定行为4.从请求主体绑定格式化的数据5.模型验证6.自定义验证7.客户端验证8.远程验证1.模型绑定 ASP.NET Core...
    99+
    2024-04-02
  • ASP.NET Core通用主机如何实现托管服务
    本文小编为大家详细介绍“ASP.NET Core通用主机如何实现托管服务”,内容详细,步骤清晰,细节处理妥当,希望这篇“ASP.NET Core通用主机如何实现托管服务”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入...
    99+
    2023-07-02
  • ASP.NET Core怎么使用EF创建模型
    这篇文章主要介绍“ASP.NET Core怎么使用EF创建模型”,在日常操作中,相信很多人在ASP.NET Core怎么使用EF创建模型问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”ASP...
    99+
    2023-06-29
  • ASP.NET Core使用EF创建关系模型
    目录1.关系2.术语定义3.约定4.完全定义的关系5.无外键属性6.单个导航属性7.数据注释7.1ForeignKey7.2InverseProperty8.Fluent API8....
    99+
    2024-04-02
  • ASP.NET Core MVC中的模型怎么使用
    本篇内容介绍了“ASP.NET Core MVC中的模型怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.模型绑...
    99+
    2023-06-30
  • ASP.NET Core中如何使用EF创建模型
    本文小编为大家详细介绍“ASP.NET Core中如何使用EF创建模型”,内容详细,步骤清晰,细节处理妥当,希望这篇“ASP.NET Core中如何使用EF创建模型”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一...
    99+
    2023-06-29
  • ASP.NET Core集成Apollo的方法
    今天小编给大家分享一下ASP.NET Core集成Apollo的方法的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。...
    99+
    2023-06-29
  • ASP.NET Core怎么使用EF创建关系模型
    今天小编给大家分享一下ASP.NET Core怎么使用EF创建关系模型的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧...
    99+
    2023-06-29
  • ASP.NET Core基于现有数据库创建EF模型
    1.简介 Entity Framework Core可通过数据库提供给应用程序的插件访问许多不同的数据库。我们可以通过使用Entity Framework Core构建执行基本数据访...
    99+
    2024-04-02
  • ASP.NET Core设置URLs的五种方法
    目录前言URL格式前提条件方法1 使用环境变量方法2 使用命令行参数方法3 使用配置文件方法4 使用UseUrls方法5 使用Kestrel优先级总结前言 在使用ASP.NET Co...
    99+
    2024-04-02
  • ASP.NET Core读取Request.Body的正确方法
    目录前言常用读取方式同步读取异步读取重复读取源码探究StreamReader和Stream的关系HttpRequest的BodyAllowSynchronousIO本质来源Enabl...
    99+
    2024-04-02
  • ASP.NET Core基础之Main方法讲解
    为什么ASP.NET Core采用Main方法? 需要记住的最重要的一点是,ASP.NET Core Web 应用程序最初作为控制台应用程序启动,Main() 方法是应用程序的入口点...
    99+
    2024-04-02
  • ASP.NET Core项目中调用WebService的方法
    一、前言 现实生产中,有一些比较老的系统对外提供的接口都是WebService形式的,如果是使用.NET Framework创建的项目调用WebService非常方便,网上有很多代码...
    99+
    2024-04-02
  • ASP.NET Core 6.0 基于模型验证的数据验证功能
    目录1 前言1.1 数据验证的场景1.2 本文的脉络2 模型验证2.1 介绍2.2 基本使用(1)自定义模型(2)控制器代码(3)测试2.3 内置特性3 自定义数据验证3.1 介绍3...
    99+
    2024-04-02
  • ASP.NET Core中间件初始化的实现方法
    小编给大家分享一下ASP.NET Core中间件初始化的实现方法,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!前言  在日常使用ASP.NET Core开发的过程中我们多多少少会设计到使用中间件的场景,...
    99+
    2023-06-15
  • ASP.NET Core全局异常处理方法是什么
    这篇“ASP.NET Core全局异常处理方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“ASP.NET&...
    99+
    2023-06-29
  • jspXCMS模型管理的方法是什么
    这篇文章主要介绍“jspXCMS模型管理的方法是什么”,在日常操作中,相信很多人在jspXCMS模型管理的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”jspXCMS模型管理的方法是什么”的疑惑有所...
    99+
    2023-06-26
  • 三种方法解决ASP.NET Core 6中的依赖项
    依赖性注入是一种技术,它允许我们注入一个特定类的依赖对象,而不是直接创建这些实例。 使用依赖注入的好处显而易见,它通过放松模块间的耦合,来增强系统的可维护性和可测试性。 依赖注入允许...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作