自從我們從 .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 回答

泛舟湖上清波郎朗
TA貢獻1818條經驗 獲得超3個贊
原來這是 docker 主機(debian)和掛起的套接字(netstat 顯示很多 TIME_WAITs)的問題。將應用程序端口更改為不同的端口,格式錯誤的請求停止。
重新啟動或重新啟動 docker 守護程序可能也會修復它,但我們其他容器的正常運行時間至關重要,因此我們無法對其進行測試。

白衣非少年
TA貢獻1155條經驗 獲得超0個贊
我遇到了同樣的問題,在我的情況下,解決方案是在 nginx 配置中 - 我將 proxy_pass 設置為 https://localhost:4000 而不是 http://localhost:4000
- 3 回答
- 0 關注
- 251 瀏覽
添加回答
舉報
0/150
提交
取消