超出了内部响应标头的大小限制

时间:2019-03-14 03:47:25

标签: c# asp.net-core

enter image description here

当我执行重定向到相关网站的另一部分时,会发生此错误。

return this.RedirectToActionPermanent("Index", "Dashboard"

在错误发生之前,代码不会进入仪表板控制器中的Index方法。

enter image description here

我认为张贴的Fiddler响应标头不是错误消息中的> internal <响应标头。

谁能解释如何最好地增加内部响应标头的大小限制?

或者,我们是否正在考虑压缩内部响应标头作为解决方案?

为您提供信息,重定向到上面的呼叫每天工作大约3个月,直到大约5天前中断。

[编辑1] program.cs文件现在看起来像:

        public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
        WebHost.CreateDefaultBuilder(args).UseStartup<Startup>().ConfigureKestrel((context, options) => {
            options.Limits.KeepAliveTimeout = TimeSpan.FromMinutes(5);
            options.Limits.MaxResponseBufferSize = 1024000;
            options.Limits.Http2.HeaderTableSize = 16384;
        });

但是,同样的错误仍在发生。

[编辑2 18.03.19 2:28 am] 该问题是由于未在其中一个概要文件用户的(标识表)中填写用户声明引起的。我在SSMS中手动填写了数据,并且错误停止了发生。

TIA。

大卫

1 个答案:

答案 0 :(得分:0)

我也遇到了类似的问题 这是由WinHTTP中的一个错误引起的,该错误发生在很久以前(核心2.0版)。当发生重定向响应时,WinHTTP倾向于重用相同的连接来跟随重定向。 耗尽的响应字节数由WinHttpHandler.MaxResponseDrainSize控制。 当响应大小超过MaxResponseDrainSize时,请求将中止,并显示指定的错误。

当我升级到2.1时,问题消失了

  • 更新淘汰问题

您添加为KeepAliveTimeout = TimeSpan.FromMinutes(5)的设置;适用于Kestrel,但不适用于IIS。 IIS和Kestrel之间有反向代理设置。因此,您将红est超时设置为5分钟。但是IIS的默认超时时间为120秒。您可以更改超时时间 IIS->站点->选择您的站点->高级设置->限制->连接超时 。 尝试更改此设置以检查是否发生此错误。

配置编辑器中还有另一个可用设置 enter image description here enter image description here