web-dev-qa-db-fra.com

ASP.NET Core 2.1 Problème de ligne de demande non valide

Nos journaux de serveur de conteneur Linux Docker ASP.NET Core sont remplis par les entrées de journal "informatives" suivantes depuis la mise à jour de .NET Core 2.0 vers .NET Core 2.1 (SDK 2.1.302):

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'

L'ID de connexion est incrémenté de 1 alpha/chiffre toutes les secondes environ. L'hex ne semble pas se traduire par quelque chose de significatif (NUL NUL NUL SOH NUL NUL EOT NUL ESC NUL NUL LF).

Choses que nous avons exclues:

  • Il ne provient pas de WAN/LAN (l'accès réseau désactivé aux conteneurs et les entrées sont toujours générées).
  • Cela ne se produit pas dans notre environnement de développement (Windows avec Visual Studio)
  • Le redéploiement du conteneur Docker ne résout pas le problème.
  • Nous ne pensons pas que ce soit un problème SSL car kestrel est configuré pour http uniquement. Nous pouvons accéder à l'application et à ses Websockets (SignalR) via https et wss
8
Yang

Il s'avère que c'était un problème avec le docker Host (debian) et les sockets suspendus (netstat montrant beaucoup de TIME_WAITs). Changement du port d'application sur un autre et les requêtes mal formées se sont arrêtées.

Un redémarrage ou un redémarrage du démon docker le corrigerait probablement également, mais la disponibilité de nos autres conteneurs est vitale, nous n'avons donc pas pu le tester.

4
Yang

Il semble que vous atteigniez un point de terminaison HTTP sur HTTPS.

4
Gurgen Sargsyan