为什么Visual Studio调试器在运行swagger时自动关闭?

vbopmzt1  于 2023-02-09  发布在  其他
关注(0)|答案(1)|浏览(321)

当我尝试通过Swagger调试我的一个api时,我遇到了一个奇怪的问题。如果我删除调试器点,swagger会自动关闭而不显示输出。但是,如果我添加调试器点,调试器会停止工作,并显示一个弹出窗口,显示消息the target process exited with code 1073741819 while evaluating a function
下面是我提到的弹出窗口:

下面是我遇到这个问题的API:

[HttpGet("feerate")]
public async Task<ActionResult<ResponseVM>> GetFeeRate(FeeName feeName, FeeSchedule feeSchedule, FeeUnit feeUnit, int vcu)
{
    try
    {
        var rv = await service.GetFeeRate(feeName, feeSchedule, feeUnit, vcu);
        return Ok(new ResponseVM
        {
            success = true,
            data = rv,
            message = "Fee rate fetched successfully"
        });
    }
    catch (Exception ex)
    {
        return Ok(new ResponseVM
        {
            success = false,
            message = ex.Message
        });
    }
}

服务功能如下:

public async Task<PaginatedResponseVM<FeeScheduleDto>> GetFeeRate(FeeName feeName, FeeSchedule feeSchedule, FeeUnit feeUnit, int vcu)
{

    var accQueryList = _dbContext.FeeSchedule.Where(x => x.FeeSchedule == feeSchedule);
    accQueryList = accQueryList.Where(x => x.FeeName == feeName);
    accQueryList = accQueryList.Where(x => x.FeeUnit == feeUnit);
    accQueryList = accQueryList.Where(x => x.TierStart <= vcu);
    accQueryList = accQueryList.Where(x => x.TierEnd > vcu);

    var count = await accQueryList.CountAsync();

    var items = _mapper.Map<List<FeeScheduleDto>>(await accQueryList.ToListAsync());

    var returnView = new PaginatedResponseVM<FeeScheduleDto>(count, items);

    return returnView;

}

下面是我试图解决它:
1.已重新启动我的电脑
1.升级的Visual Studio版本
1.通过控制面板修复Visual Studio
1.已清理解决方案并重新生成
但问题仍然存在,那么有没有人面临过类似的问题,以及它是如何解决的?
任何帮助都将不胜感激。

irlmq6kh

irlmq6kh1#

谢谢大家的回复和见解。但是,问题出在我的枚举上,我在Dto文件中使用的方式不对。正如弹出错误所述,我不得不一遍又一遍地检查,最后纠正我愚蠢的错误。所以,当枚举被转换为字符串时,枚举变量应该被转换为字符串,而不是返回的字符串变量本身。下面是正确的方法:

public FeeScheduleEnum FeeSchedule { get; set; }
public string FeeScheduleName { get { return FeeSchedule.ToString(); } }

这就是我犯下愚蠢错误的地方

public FeeScheduleEnum FeeSchedule { get; set; }
public string FeeScheduleName { get { return FeeScheduleName.ToString(); } }

把我的答案贴在这里,让其他人和我一样犯同样的错误。

相关问题