为了账号安全,请及时绑定邮箱和手机立即绑定

ASP.NET Core 2.1 无效请求行问题

ASP.NET Core 2.1 无效请求行问题

C#
翻阅古今 2021-10-23 16:25:30
自从我们从 .NET Core 2.0 更新到 .NET Core 2.1 (SDK 2.1.302) 以来,我们的 Linux Docker ASP.NET Core 容器服务器日志被以下“信息性”日志条目填充:INFO|Microsoft.AspNetCore.Server.Kestrel|Connection id "0HLFG42JUAORG" bad request data: "Invalid request line: 'CNXN\x00\x00\x00\x01\x00\x00\x04\x00\x1B\x00\x00\x00M\x0A'" Microsoft.AspNetCore.Server.Kestrel.Core.BadHttpRequestException: Invalid request line: 'CNXN\x00\x00\x00\x01\x00\x00\x04\x00\x1B\x00\x00\x00M\x0A'INFO|Microsoft.AspNetCore.Server.Kestrel|Connection id "0HLFG42JUAORH" bad request data: "Invalid request line: 'CNXN\x00\x00\x00\x01\x00\x00\x04\x00\x1B\x00\x00\x00M\x0A'" Microsoft.AspNetCore.Server.Kestrel.Core.BadHttpRequestException: Invalid request line: 'CNXN\x00\x00\x00\x01\x00\x00\x04\x00\x1B\x00\x00\x00M\x0A'连接 ID 大约每秒增加 1 个字母/数字。十六进制似乎没有转化为任何有意义的 ( NUL NUL NUL SOH NUL NUL EOT NUL ESC NUL NUL LF)。我们排除的事情:它不是源自 WAN/LAN(禁用对容器的网络访问,并且仍在生成条目)。它不会发生在我们的开发环境中(带有 Visual Studio 的 Windows)重新部署 docker 容器并不能解决问题。我们认为这不是 SSL 问题,因为 kestrel 仅针对 http 进行配置。我们可以通过 https 和 wss 访问该应用程序及其 websockets (SignalR)
查看完整描述

3 回答

?
SMILET

TA贡献1796条经验 获得超4个赞

看起来您正在通过 HTTPS 访问 HTTP 端点。


查看完整回答
反对 回复 2021-10-23
?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

原来这是 docker 主机(debian)和挂起的套接字(netstat 显示很多 TIME_WAITs)的问题。将应用程序端口更改为不同的端口,格式错误的请求停止。

重新启动或重新启动 docker 守护程序可能也会修复它,但我们其他容器的正常运行时间至关重要,因此我们无法对其进行测试。


查看完整回答
反对 回复 2021-10-23
?
白衣非少年

TA贡献1155条经验 获得超0个赞

我遇到了同样的问题,在我的情况下,解决方案是在 nginx 配置中 - 我将 proxy_pass 设置为 https://localhost:4000 而不是 http://localhost:4000


查看完整回答
反对 回复 2021-10-23
  • 3 回答
  • 0 关注
  • 191 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信