您好AWS团队,
您的LambdaEntryPoint的实现存在一些问题,其行为与LocalEntryPoint上的行为有所不同。 要重新创建这种情况,您需要设置CustomAttribute:
```
公共类CustomAttribute:ActionFilterAttribute
{
公共重写void OnActionExecuted(ActionExecutedContext actionExecutedContext)
{
HttpResponse响应= actionExecutedContext.HttpContext.Response;
LambdaLogger.Log(“ Test” + response.StatusCode +“” +(响应!= null).ToString()+“” +
response.IsSuccessStatusCode()。ToString()+“” +(actionExecutedContext.Result!= null).ToString());
base.OnActionExecuted(actionExecutedContext);
}
}
```
如果您使用localEntry测试此CustomAttribute,则将看到已设置StatusCode,但是在AWS上调试该代码时,将得到0,原因是工作顺序不同。 我在这里与OData小组一起调查此问题:OData / WebApi#1227
我能够重现该问题,但仍不确定为什么会发生,但我将继续调查。
这个话题有什么新闻吗?
@normj ,这个自定义操作过滤器也有类似的问题
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Filters;
namespace Infrastructure
{
public class ValidateModelAttribute : ActionFilterAttribute, IOrderedFilter
{
public ValidateModelAttribute()
{
Order = 100;
}
public override void OnActionExecuting(ActionExecutingContext context)
{
if (!context.ModelState.IsValid)
{
context.Result = new BadRequestObjectResult(context.ModelState);
}
}
}
}
它在本地运行良好,并返回验证错误并终止请求,但在部署到AWS Lambda时不会执行。
如果有计划修复它,仍然会发生此错误?
@normj有解决此问题的计划吗?
最新消息是什么? 自上次添加评论以来已经一年多了。 @ NGL321 ,您可以提供更新吗?
嘿@julealgon ,
对不起,标签,走了。 我们目前已经知道此错误,并计划进行修复,但是很遗憾,由于目前不在立即修复计划中,因此我无法给您更具体的时间表。
如果阻止了此操作,欢迎您提交拉动请求进行修复,我们将尽快对其进行审核。 或者,继续碰碰这个问题,我将确保它在可行的情况下尽快得到关注(请求修复的人越多,我们可以将其优先级提高的程度)higher
😷
最有用的评论
@normj有解决此问题的计划吗?