Asp.net WebApi2 默认路由找不到不同的命名 api?

Asp.net WebApi2 default routing not finding different named apis?

我有两个 WebApi2 操作,每个操作都可以正常工作:

[System.Web.Http.HttpPost]
public async Task<HttpResponseMessage> MigrateUser([FromBody] MigrateUserModel userInfo)

[System.Web.Http.HttpPost]
public async Task<HttpResponseMessage> ChangeEmail([FromBody] ChangeEmailModel model)

当它们都存在时,我都收到 404 错误。我必须怎么做才能同时找到 POST .../ChangeEmail 和 .../MigrateUser?有没有一种方法可以在没有显式基于属性的路由的情况下做到这一点(这会是什么?)。

以下 HttpGet 工作正常,不需要 Route()...

       [System.Web.Http.HttpGet]
    public async Task<TcMarketUserFullV1> GetIdmCtoUsrFromEmail(string email)

        [System.Web.Http.HttpGet]
    public async Task<TcMarketUserFullV1> GetIdmCtoUsrFromGuid(string ctoguid)

使用 Route 属性进行比较。每个动作。

[System.Web.Http.HttpPost,Route("migrate")]
public async Task<HttpResponseMessage> MigrateUser([FromBody] MigrateUserModel userInfo)

[System.Web.Http.HttpPost,Route("change")]
public async Task<HttpResponseMessage> ChangeEmail([FromBody] ChangeEmailModel model)