Asp.net web api 很难弄清楚为什么我';我的Web API核心localhost端点上有一个404

Asp.net web api 很难弄清楚为什么我';我的Web API核心localhost端点上有一个404,asp.net-web-api,Asp.net Web Api,我看到过很多类似的问题,但是我还没有弄明白为什么我在尝试访问web api中的端点时会得到404 在IIS中,我的站点设置如下: [Route("api/[controller]")] [ApiController] public class PaycheckTypeController : ControllerBase { private readonly SqlPaycheckDatabaseContext _context; public Payche

我看到过很多类似的问题,但是我还没有弄明白为什么我在尝试访问web api中的端点时会得到404

在IIS中,我的站点设置如下:

[Route("api/[controller]")]
[ApiController]
public class PaycheckTypeController : ControllerBase
{
    private readonly SqlPaycheckDatabaseContext _context;

    public PaycheckTypeController(SqlPaycheckDatabaseContext context)
    {
        _context = context;
    }

    [HttpGet]
    [Route("paycheck-type/{id}")]
    public async Task<ActionResult<PaycheckTypeEntity>> GetPaycheckTypeEntity(int id)
    {
        var paycheckTypeEntity = await _context.PaycheckTypes.FindAsync(id);

        if (paycheckTypeEntity == null)
        {
            return NotFound();
        }

        return paycheckTypeEntity;
    }

金融api应用程序池对.NET CLR版本使用“无托管代码”,对标识使用NetworkService

我的控制器和端点如下所示:

[Route("api/[controller]")]
[ApiController]
public class PaycheckTypeController : ControllerBase
{
    private readonly SqlPaycheckDatabaseContext _context;

    public PaycheckTypeController(SqlPaycheckDatabaseContext context)
    {
        _context = context;
    }

    [HttpGet]
    [Route("paycheck-type/{id}")]
    public async Task<ActionResult<PaycheckTypeEntity>> GetPaycheckTypeEntity(int id)
    {
        var paycheckTypeEntity = await _context.PaycheckTypes.FindAsync(id);

        if (paycheckTypeEntity == null)
        {
            return NotFound();
        }

        return paycheckTypeEntity;
    }
[路由(“api/[控制器]”)]
[ApiController]
公共类工资支票类型控制器:ControllerBase
{
私有只读SqlPaycheckDatabaseContext_context;
公共PaycheckTypeController(SqlPaycheckDatabaseContext上下文)
{
_上下文=上下文;
}
[HttpGet]
[路由(“工资支票类型/{id}”)]
公共异步任务GetPaycheckTypeEntity(int id)
{
var paycheckTypeEntity=wait _context.PaycheckTypes.FindAsync(id);
如果(paycheckTypeEntity==null)
{
返回NotFound();
}
返回paycheckTypeEntity;
}
}


基于
/api/financial
的虚拟路径,
api/[controller]
的控制器路由和
paycheck type/{id}
的端点路由,我希望
http://localhost/api/financial/api/paycheck-type/4
不返回404。是否有我做得不正确的地方?

要实现您的操作,您必须使用url:

http://localhost/api/financial/api/paychecktype/paycheck-type/4
你可以改到这条路

[Route("~/paycheck-type/{id}")]
public async Task<ActionResult<PaycheckTypeEntity>> GetPaycheckTypeEntity(int id)