You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用带参数的ASP.NET Core Web API端点时遇到异常问题求助

调用带参数的ASP.NET Core Web API端点时遇到异常问题求助

各位大佬好,我最近在开发ASP.NET Core Web API时碰到了一个头疼的问题,实在搞不定来求助了。

本地开发环境里,我写了一个ReviewSummaryController,里面有两个GET接口:一个是不带参数的GetAll,用来获取所有的审核摘要,这个接口调用完全正常;但另一个带userId参数的接口,每次调用都会抛出异常,返回500内部服务器错误。

下面是我的控制器代码:

namespace APP_API.Controllers
{
    [ApiController]
    [Route("api/[controller]")]
    public class ReviewSummaryController : BaseController
    {
        protected IReviewSummaryService _reviewSummaryService;
        public ReviewSummaryController(IConfiguration configuration, ILogger<BaseController> logger, IHttpClientFactory httpClientFactory, IReviewSummaryService reviewSummaryService) : base(configuration, logger, httpClientFactory)
        {
            _reviewSummaryService = reviewSummaryService;
        }

        [HttpGet(Name = "GetAllReviewSummary")]
        [Authorize]
        [OktaAllowedRoles(["test-role"])]
        [EnableRateLimiting("api")]
        public async Task<IActionResult> GetAll()
        {
            return Ok(await _reviewSummaryService.GetAllAsync());
        }

        [HttpGet("{userId}")]
        [Authorize]
        [OktaAllowedRoles(["test-role"])]
        [EnableRateLimiting("api")]
        public async Task<IActionResult> GetByUserId(string userId)
        {
            var result = await _reviewSummaryService.GetByUserIdAsync(userId);
            if (result == null)
            {
                return NotFound();
            }
            return Ok(result);
        }
    }
}

我是通过GET /api/ReviewSummary/12345这样的URL去调用带参数的接口的,权限验证这块应该没问题,因为GetAll接口同样用了[Authorize]和[OktaAllowedRoles]特性,能正常返回数据。查看服务器日志,发现异常提示要么是参数绑定失败,要么是服务层的GetByUserIdAsync方法抛出了空引用(暂时没拿到完整的异常栈,只能先猜测)。

有没有朋友能帮我分析下可能的原因?比如路由配置是不是有问题?参数类型匹配吗?或者是我在依赖注入或者服务层实现里哪里漏了东西?

备注:内容来源于stack exchange,提问作者Qiuzman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.17 10:39:37