当我执行重定向到相关网站的另一部分时,会发生此错误。
return this.RedirectToActionPermanent("Index", "Dashboard"
在错误发生之前,代码不会进入仪表板控制器中的Index方法。
我认为张贴的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。
大卫
答案 0 :(得分:0)
我也遇到了类似的问题 这是由WinHTTP中的一个错误引起的,该错误发生在很久以前(核心2.0版)。当发生重定向响应时,WinHTTP倾向于重用相同的连接来跟随重定向。 耗尽的响应字节数由WinHttpHandler.MaxResponseDrainSize控制。 当响应大小超过MaxResponseDrainSize时,请求将中止,并显示指定的错误。
当我升级到2.1时,问题消失了
您添加为KeepAliveTimeout = TimeSpan.FromMinutes(5)的设置;适用于Kestrel,但不适用于IIS。 IIS和Kestrel之间有反向代理设置。因此,您将红est超时设置为5分钟。但是IIS的默认超时时间为120秒。您可以更改超时时间 IIS->站点->选择您的站点->高级设置->限制->连接超时 。 尝试更改此设置以检查是否发生此错误。