gpt4 book ai didi

asp.net - IIS 7.5 ASP.NET HttpModule - 设置 Response.Filter 会导致分块编码

转载 作者:行者123 更新时间:2023-12-02 22:53:22 25 4
gpt4 key购买 nike

我正在尝试创建一个 HttpModule 来更改 Response.Filter ,如下所示(对于本演示,只需将过滤器设置回自身):

public class ContentTrafficMonitor : IHttpModule
{
public void Init( HttpApplication context )
{
context.BeginRequest += OnBeginRequest;
}

public void Dispose()
{
}

private static void OnBeginRequest( object sender, EventArgs e )
{
var application = (HttpApplication) sender;
application.Response.Filter = application.Response.Filter;
}

}

这样做会将响应的传输编码设置为分块,而不是使用 Content-Length header 。

如果我删除设置 Response.Filter 的行,则响应确实具有 Content-Length header 。我们的应用程序依赖于 Content-Length header ,有什么方法可以防止这种行为吗?

最佳答案

我的猜测是,设置过滤器会干扰输出的正常缓冲,因此输出现在被分块。

也许您可以通过让过滤器读取直到结束来模仿该行为,即获取所有输出并根据您在写入所有内容之前读取的内容设置内容长度标题。

虽然我担心这只是猜测。

西蒙

关于asp.net - IIS 7.5 ASP.NET HttpModule - 设置 Response.Filter 会导致分块编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4938256/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com