Asp.net web api 如何在ASP.NET Web API方法中终止响应

Asp.net web api 如何在ASP.NET Web API方法中终止响应,asp.net-web-api,Asp.net Web Api,我有一个调用第三方库的WebAPI方法。在图书馆的深处,它称之为Response.Flush。这导致: 发送HTTP头后,服务器无法设置状态 这种行为可以简单地复制: public HttpResponseMessage Get() { HttpContext.Current.Response.Flush(); return Request.CreateResponse(HttpStatusCode.OK, "ok"); } 我尝试在F

我有一个调用第三方库的WebAPI方法。在图书馆的深处,它称之为Response.Flush。这导致:

发送HTTP头后,服务器无法设置状态

这种行为可以简单地复制:

    public HttpResponseMessage Get()
    {
        HttpContext.Current.Response.Flush();

        return Request.CreateResponse(HttpStatusCode.OK, "ok");
    }

我尝试在Flush()之后使用Response.End和CompleteRequest,但这两种方法似乎都不能阻止Web API继续向响应中添加头。是否有其他特定于Web API的机制来缩短响应?

我本来打算建议响应。结束,但看起来您已经尝试过了

您是否尝试过使用Response.Headers.Remove?我发现一篇关于CodeProject的文章可能很有用。

它说:

“此外,当我们在全局文件中时,我们还可以消除 通过向PreSendRequestHeaders事件添加一个处理程序来创建“服务器”头 像这样:


希望有帮助

我本想建议您的回应。结束,但看起来您已经尝试过了

您是否尝试过使用Response.Headers.Remove?我发现一篇关于CodeProject的文章可能很有用。

它说:

“此外,当我们在全局文件中时,我们还可以消除 通过向PreSendRequestHeaders事件添加一个处理程序来创建“服务器”头 像这样:


希望有帮助

我不想删除标题,我想停止处理,这样Web API就不会尝试修改响应。我不想删除标题,我想停止处理,这样Web API就不会尝试修改响应。
app.Context.Response.Headers.Remove("Server");