簡體   English   中英

ASP.NET Core 無法進入端點方法?

[英]ASP.NET Core can't step into endpoint method?

我有一個 API 控制器,其方法如下:

    [HttpGet]
    [Route("~/api/groups/{groupId}/feeds/{feedItemId}/flag")]
    [FeedItemAccess(AccessLevelTypes.GroupMember, "groupId")]
    public async Task<IActionResult> FlagFeedItem([FromRoute] int groupId, [FromRoute] long feedItemId)
    {
        try
        {
            await _feedManagementService.FlagMessage(groupId, feedItemId);
            return Ok();
        }
        catch (Exception ex)
        {
            _logger.LogError(ex, "FlagFeedItem(int)");
            return new OopsResult(ex);
        }
    }

我在await行和_logger行上放置了斷點。 然后我使用我的 REST 客戶端在調試模式下訪問指定的端點 ( http://myhost/api/groups/1/feeds/1/flag )。

我立即得到一個空白的 200 響應......但是 await 方法從未被命中,下面的服務也沒有被命中,而且我從未到達斷點。 我正在撓頭。 我認為這是一個線程死鎖問題,但事實上它實際上返回了 200 狀態代碼。

這里可能有什么問題? 路由似乎是正確的,我可以攔截控制器的構造函數,一切看起來都很好……但是當它到達這里時,系統只是決定它實際上不需要做任何事情。

順便說一句, FeedItemAccess過濾器只檢查用戶的租賃權限以連接到端點; 它似乎也工作正常(我也可以攔截它並且它在成功條件下離開過濾器)。

正如@mjwills 所建議的那樣,我應該更加小心地排除可能或不可能導致這種行為的原因。 我以為我了解動作過濾器應該如何工作,而且由於它似乎在做我想要的,我知道這不是問題......但它實際上是。

刪除所有可能的罪魁禍首並有條不紊地將它們重新添加進來……有時這是找到問題的唯一方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM