Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Lambda ASP NET Core Server is returning Content-Type Header even on NoContent Response

Aperta Adatta ai principianti
#1,123 4 commenti 1 reazione 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
68/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Ferma
Stack tecnologico
aws, csharp
Ambito
api, backend, cloud

Direzione di ricerca

Inizia in APIGatewayProxyFunction.MarshallResponse intorno alla riga 202 e a quelle successive, quindi riproduci la risposta con un semplice endpoint GET che restituisca NoContent() o Ok() usando il template Lambda apigateway-aws-proxy. Il lavoro è completato quando Content-Type viene scritto nella raccolta Headers solo se la risposta contiene contenuto, senza alcuna voce null di multiValueHeaders per una risposta 204.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

bug module/aspnetcore-support p2 queued

Description

We are using Amazon.Lambda.AspNetCoreServer 6.0.3 and normal ASP Net Controllers and responses.
The ActionResults for NoContent (HTTP 204) and Ok (HTTP 200) are correctly returning HTTP responses with a body and without a content-type header.
The ApiGatewayProxyFunction transforms that result into the following:
{
"statusCode": 204,
"headers": {},
"multiValueHeaders": {
"Content-Type": [
null
]
},
"body": "",
"isBase64Encoded": false
}

There is two Problems with this reponse:

  1. Content-Type can never be a multiValueHeader. The RFC (https://datatracker.ietf.org/doc/html/rfc7230#section-3.2.2) states that.
  2. On 204 there should not even be a content-type header (and on 200 with an empty body, probably as well) See the RFC 7231 section 3.1.5.5 for that.

Reproduction Steps

Implement a simple GET Endpoint that returns either NoContent() or Ok() and call it e.g. via the AWS console and the Test Lambda Template for "apigateway-aws-proxy".
The response should be similar to the one above.

Environment
  • Build Version: Amazon.Lambda.AspNetCoreServer 6.0.3
  • OS Info: Lambda Image public.ecr.aws/lambda/dotnet:6-x86_64
  • Build Environment: dotnet lambda toolchain (so SAM Templates)
  • Targeted .NET Platform: .NET 6.0

Resolution

  • 👋 I can/would-like-to implement a fix for this problem myself

The error should be in APIGatewayProxyFunction.MarshallResponse lines 202 and following.
Content-Type will need to be written to the Headers collection, but only if there is actually content in the response.


This is a 🐛 bug-report

Lingua principale
C#
Stelle
1.7k
Fork
504
Merge medio
2g 9h
PR unite (30g)
9

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di aws/aws-lambda-dotnet

Tutte le issue di aws/aws-lambda-dotnet

Issue simili

Altre issue su C#

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.