asp.net core 初识

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
实时数仓Hologres,5000CU*H 100GB 3个月
简介: asp.net core 多种启动方式asp.net core 可以通过项目名称,iis express 或 iis 进行启动,更具是进程内还是进程外托管,asp.net core web应用程序的支持服务器并不一样,使用项目名称启动默认会忽略进程内进程外的区别,而使用iis express 和 iis 都是明显的不同。asp.net core web 应用程序默认是进程托管。 asp.n...

asp.net core 多种启动方式

asp.net core 可以通过项目名称,iis express 或 iis 进行启动,更具是进程内还是进程外托管,asp.net core web应用程序的支持服务器并不一样,使用项目名称启动默认会忽略进程内进程外的区别,而使用iis express 和 iis 都是明显的不同。

image.png

asp.net core web 应用程序默认是进程托管。

asp.net core 典型项目的项目结构

如下图:
image.png

典型的asp.net core mvc 项目结构如图,其中wwwroot 下是一些静态文件一般是js ,css等,controllers 下是各个控制器,models 中模型类,views 下是视图一般是cshtml 文件,program.cs 是整个asp.net core web应用程序的启动类,是整个程序的起点入口,startup.cs 是配置asp.net core项目的各种服务的配置类,appsettings.json 项目的配置信息。

asp.net core 项目下的launchsettings.json 和appsettings.json

一般而言,launchsettings.json 是整个项目的项目启动配置文件,在这里配置是整个项目启动时需要进行的各种配置,如程序运行环境的指定,同时launchsettings 文件仅使用于本地开发环境,我们不需要把它发布到生产环境中。
而在项目发布到生产环境时需要使用某些独立的配置,就需要使用appsettings 配置文件,在该文件中将存放应用程序运行的配置信息,比如数据库连接字符串等。

ASP.NET Core (launchSettings)

了解launchSettings.json

打开launchSettings.json 文件后,默认情况下,您将找到以下代码。

image.png

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

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

launchSettings.json文件的 commandName 属性的值可以是以下任何一个:

  1. IISExpress
  2. IIS
  3. Project

launchSettings.json文件的CommandName属性值以及应用程序项目文件中的AspNetCoreHostingModel元素值将确定将要使用和处理传入HTTP请求的内部和外部Web服务器(反向代理服务器)。 为了更好地理解,请查看下表。
image.png

如何验证其工作模式?

方法1:

当我们在launchSettings.json文件中将CommandName用作Project时,ASP.NET Core将忽略AspNetCoreHostingModel值。 Kestrel是唯一将托管应用程序并处理传入请求的服务器。 让我们证明这一点。 现在,我们需要将启动Profile设置为WebApplication4,如下所示。

image.png

如果查看launchSettings.json文件,那么您将看到WebApplication4配置文件使用“ commandName”:“ Project”值,并且请注意下面所示的应用程序URL。 在我的应用程序中,URL为http:// localhost:5000,端口号在您的示例中可能有所不同。

image.png

现在,将应用程序项目文件中的AspNetCoreHostingModel元素值更改为InProcess,如下所示。

image.png

然后, 启动该项目, 可以看到首先启动了CMD,在这种情况下将使用kestrel服务器托管应用程序, 如下所示:

image.png

注: 因为当CommandName值为Project时,它将忽略AspNetCoreHostingModel值,而Kestrel是唯一将托管和处理传入请求的服务器。

方法2:

如果我们使用命令名作为 IISExpress 配置文件,如果我们将 AspNetCoreHostingModel 值设置为 OutOfProcess,则 ASP.NET Core 使用 IIS Express 作为外部 Web 服务器,Kestrel 是内部 Web 服务器。外部 Web 服务器(即 IIS Express)将接收传入的 HTTP 请求,然后将请求转发到内部 Web 服务器,即将处理请求的 Kestrel。让我们证明这一点。

由于我们已经将启动配置文件设置为 IIS Express,我们只需要将 AspNetCoreHostingModel 元素值更改为应用程序的项目文件中的 OutOfProcess,如下所示。
image.png

运行应用程序,浏览器输出了项目名称, 如下所示, 因为请求由Kestrel Web Server服务器处理。

image.png

目录
相关文章
|
30天前
|
存储 开发框架 JSON
ASP.NET Core OData 9 正式发布
【10月更文挑战第8天】Microsoft 在 2024 年 8 月 30 日宣布推出 ASP.NET Core OData 9,此版本与 .NET 8 的 OData 库保持一致,改进了数据编码以符合 OData 规范,并放弃了对旧版 .NET Framework 的支持,仅支持 .NET 8 及更高版本。新版本引入了更快的 JSON 编写器 `System.Text.UTF8JsonWriter`,优化了内存使用和序列化速度。
|
30天前
mcr.microsoft.com/dotnet/core/aspnet:2.1安装libgdiplus
mcr.microsoft.com/dotnet/core/aspnet:2.1安装libgdiplus
27 1
|
2月前
|
开发框架 监控 前端开发
在 ASP.NET Core Web API 中使用操作筛选器统一处理通用操作
【9月更文挑战第27天】操作筛选器是ASP.NET Core MVC和Web API中的一种过滤器,可在操作方法执行前后运行代码,适用于日志记录、性能监控和验证等场景。通过实现`IActionFilter`接口的`OnActionExecuting`和`OnActionExecuted`方法,可以统一处理日志、验证及异常。创建并注册自定义筛选器类,能提升代码的可维护性和复用性。
|
2月前
|
开发框架 .NET 中间件
ASP.NET Core Web 开发浅谈
本文介绍ASP.NET Core,一个轻量级、开源的跨平台框架,专为构建高性能Web应用设计。通过简单步骤,你将学会创建首个Web应用。文章还深入探讨了路由配置、依赖注入及安全性配置等常见问题,并提供了实用示例代码以助于理解与避免错误,帮助开发者更好地掌握ASP.NET Core的核心概念。
85 3
|
21天前
|
开发框架 JavaScript 前端开发
一个适用于 ASP.NET Core 的轻量级插件框架
一个适用于 ASP.NET Core 的轻量级插件框架
|
2月前
|
开发框架 NoSQL .NET
利用分布式锁在ASP.NET Core中实现防抖
【9月更文挑战第5天】在 ASP.NET Core 中,可通过分布式锁实现防抖功能,仅处理连续相同请求中的首个请求,其余请求返回 204 No Content,直至锁释放。具体步骤包括:安装分布式锁库如 `StackExchange.Redis`;创建分布式锁服务接口及其实现;构建防抖中间件;并在 `Startup.cs` 中注册相关服务和中间件。这一机制有效避免了短时间内重复操作的问题。
|
2月前
|
开发框架 前端开发 JavaScript
ASP.NET MVC 教程
ASP.NET 是一个使用 HTML、CSS、JavaScript 和服务器脚本创建网页和网站的开发框架。
37 7
|
2月前
|
存储 开发框架 前端开发
ASP.NET MVC 迅速集成 SignalR
ASP.NET MVC 迅速集成 SignalR
52 0
|
3月前
|
开发框架 前端开发 .NET
ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
44 0
|
3月前
|
开发框架 前端开发 安全
ASP.NET MVC 如何使用 Form Authentication?
ASP.NET MVC 如何使用 Form Authentication?