由于对另一个项目的依赖,我被迫将 Microsoft.AspNet.WebApi.Client 和 Microsoft.AspNet.WebApi.Core 从版本 5.0.0.0 升级到 5.2.0.0,现在我的 API 抛出错误“A直接路由不能使用参数“controller”。指定文字路径代替此参数以创建到 Controller 的路由。
调用时在 Global.asax.cs 中初始化 HttpConfiguration 时抛出错误
GlobalConfiguration.Configure(WebApiConfig.Register);
这似乎是导致问题的核心库。当我只更新客户端时,它没有抛出错误。
我注意到,如果我注释掉项目中所有 Controller 的路由属性,它就不会再抛出错误,例如
[Route("api/storage/series/{series}/documentId/{documentId}")]
但是,由于依赖应用程序的数量,删除这些并不是一个可行的解决方案。
在 Google 上/Binging 错误中,有用的信息几乎为零。任何人都可以提供有关此错误的任何见解并建议我如何解决它吗?
最佳答案
解决了这个问题,或者更确切地说,我的同事做到了。如果您查看错误,现在看起来很明显。这是由于我们的某些 Controller (不是我在问题中使用的示例)上的路由属性包含 {controller}。例如
[Route("api/{controller}/editGroups")]
将其更改为使用硬编码的 Controller 名称(如下所示)解决了该问题。
[Route("api/documents/editGroups")]
关于c# - 升级到WebApi.Core报错-直接路由不能使用参数 'controller',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31960796/