【问题标题】:How to use HttpResponseFeature in a ASP.net Core Middleware如何在 ASP.net 核心中间件中使用 HttpResponse 功能
【发布时间】:2021-01-26 23:25:27
【问题描述】:

我刚刚发现“RequestFeatures”是 ASP.net Core 中的一个东西,对我来说是个新闻.. 反正..

我创建了一个中间件,它需要更改响应正文和响应提供的标头。

我习惯于通过直接在作为 Invoke 方法的参数提供的 HttpContext 上下文对象上替代它来做到这一点。但是我在某处读到 context.Features 是由于优化而要走的路,而不是什么…… (这是真的吗?我知道测试功能比“模拟”整个 HttpContext 更容易,这在历史上是一件痛苦的事情。)所以我创建了自己的 HttpResponseFeature 实现并注册了它在我的 Invoke 方法中使用:

        httpContext.Features.Set<IHttpResponseFeature>
        (
            //Registering my own HttpResponseFeature that takes an argument..
            new MyHttpResponseFeature(httpResponseMessage)
        );

但是,OnCompleted 或 OnStarting 方法永远不会运行。我添加了一些断点来验证这一点,但断点永远不会被命中。我错过了什么吗?

【问题讨论】:

  • 你可以看到这个thread 可能有帮助。

标签: asp.net-core middleware


【解决方案1】:

事实证明,如果您在 ASP.net Core 之上构建自己的自定义 HTTP 服务器,FeatureCollection/RequestFeatures 是一个“新”事物。 一篇很好地涵盖了这一点的文章是: https://reynders.co/use-iserver-from-aspnet-core-to-create-your-own-web-server/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-17
    • 2017-06-09
    • 2019-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-30
    • 2015-01-06
    相关资源
    最近更新 更多