Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

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

Đang mở Phù hợp với người mới
#1,123 4 bình luận 1 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
2/5
Thời gian dự kiến
1-3 giờ
Mức phù hợp với người mới
68/100
Loại issue
Lỗi
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Đình trệ
Công nghệ
aws, csharp
Lĩnh vực
api, backend, cloud

Hướng nghiên cứu

Bắt đầu trong APIGatewayProxyFunction.MarshallResponse tại khoảng dòng 202 và các dòng tiếp theo, sau đó tái hiện phản hồi bằng một endpoint GET đơn giản trả về NoContent() hoặc Ok() bằng apigateway-aws-proxy Lambda template. Hoàn tất khi Content-Type chỉ được ghi vào collection Headers khi phản hồi có nội dung, không có entry multiValueHeaders null đối với phản hồi 204.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

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

Ngôn ngữ chính
C#
Star
1.7k
Fork
505
Merge trung bình
2 ngày 9 giờ
Pull request đã merge (30 ngày)
9

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của aws/aws-lambda-dotnet

Tất cả issue của aws/aws-lambda-dotnet

Issue tương tự

Thêm issue về C#

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.