首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在ASP.NET核心中使用app.Run和app.UseEndpoints有什么不同?

在ASP.NET核心中使用app.Run和app.UseEndpoints有什么不同?
EN

Stack Overflow用户
提问于 2019-10-17 20:43:42
回答 3查看 5.7K关注 0票数 10

我正在使用ASP.NET核心,并试图弄清楚app.Run()app.UseEndpoints()之间的区别。它们有没有一些优点/缺点?我试着在3.0中使用app.Run(),但我不确定是否有必要这样做?有人能给点建议吗?

EN

Stack Overflow用户

发布于 2021-08-03 07:29:17

区别是基本的,Edward已经做了很好的解释,但我相信一个更简单的解释会更好。App.Use用于将中间件添加到OWIN管道中,App.Run也用于相同的目的。不同之处在于,一旦添加了App.Run的中间件完成执行,流水线将终止,响应将返回给调用者。这是唯一的区别。让我举个例子。

代码语言:javascript
运行
复制
app.Use((context, nextMidWare) => { context.Response.Body.Write("Written by app.Use"); nextMidWare(context);});

app.Run((context) => context.Response.Body.Write("Written by app.Run"));

app.Use((context, nextMidWare) => context.Response.Body.Write("Also written by app.Use"));

为了更好地表达我的解释,我对方法签名做了一些简化。鉴于这些是唯一注册的中间件,当您从浏览器请求网站时,结果将如下所示。

代码语言:javascript
运行
复制
Written by app.Use
Written by app.Run

正如您可以观察到的,最后一条消息"Also written by app.Use“尚未写入响应。当然,原因是我们在使用App.Run注册了另一个中间件之后,又注册了相关的中间件。如果我们使用App.Use,那么我们也会观察到最后一条消息。

最后,App.UseEndpoints类似于对App.Use方法的预先配置的调用,它为您提供了特定的功能,我建议您阅读一些关于这一问题的微软文档。

我建议你阅读这些:

票数 0
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58432973

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档