.NET Aspire 9接入现有API项目返回空200响应问题
.NET API接入Aspire后返回200但响应内容为空的解决方案
问题现象
- 现有.NET API接入Aspire解决方案后,Aspire仪表板可正常启动并列出API服务,但所有接口请求均返回HTTP 200状态码,且响应内容为空
- 错误端点(如未授权接口)仍能正常返回401状态,与接入Aspire前表现一致
- 新增测试端点
app.MapGet("/test", () => { return "test"; }).AllowAnonymous();同样返回空内容,项目日志显示请求已被命中,但响应Content-Length为0:Request starting HTTP/1.1 GET https://localhost:7122/test - - - Request finished HTTP/1.1 GET https://localhost:7122/test - 200 0 - 6.7426ms
问题定位
新增的AddServiceDefaults配置代码中,添加的弹性策略http.AddStandardResilienceHandler()干扰了响应内容的正常输出。
解决办法
暂时禁用http.AddStandardResilienceHandler()弹性策略后,API即可正常返回响应内容。
后续优化建议
若需要保留弹性策略功能,可进一步排查该策略的默认配置是否与当前API的响应处理逻辑冲突,比如检查策略中的响应修改、超时或重试规则是否影响了响应输出。
内容的提问来源于stack exchange,提问作者Paul Charlton
相关产品推荐
相关产品推荐

