升级到 WebApi.Core 错误 - 直接路由不能使用参数 'controller'
Upgrade to WebApi.Core error - A direct route cannot use the parameter 'controller'
由于对另一个项目的依赖,我被迫将 Microsoft.AspNet.WebApi.Client 和 Microsoft.AspNet.WebApi.Core 从版本 5.0.0.0 升级到 5.2.0.0,现在我的 API 抛出错误"A direct route cannot use the parameter 'controller'. Specify a literal path in place of this parameter to create a route to a controller".
调用
时,在 Global.asax.cs 中初始化 HttpConfiguration 时抛出错误
GlobalConfiguration.Configure(WebApiConfig.Register);
似乎是核心库导致了问题。当我只更新客户端时,它没有抛出错误。
我注意到,如果我注释掉项目中所有控制器的路由属性,它就不会再抛出错误,例如
[Route("api/storage/series/{series}/documentId/{documentId}")]
但是,由于依赖应用程序的数量,删除这些并不是一个可行的解决方案。
在 Google/Binging 错误上几乎没有有用的信息。任何人都可以提供有关此错误的任何见解并建议我如何解决它吗?
想通了,或者更确切地说,是我的同事想通了。如果您查看错误,现在看起来很明显。这是由于我们的某些控制器(不是我在问题中使用的示例)上的路由属性包含 {controller}。例如
[Route("api/{controller}/editGroups")]
将其更改为使用硬编码的控制器名称(如下所示)解决了问题。
[Route("api/documents/editGroups")]
由于对另一个项目的依赖,我被迫将 Microsoft.AspNet.WebApi.Client 和 Microsoft.AspNet.WebApi.Core 从版本 5.0.0.0 升级到 5.2.0.0,现在我的 API 抛出错误"A direct route cannot use the parameter 'controller'. Specify a literal path in place of this parameter to create a route to a controller".
调用
时,在 Global.asax.cs 中初始化 HttpConfiguration 时抛出错误GlobalConfiguration.Configure(WebApiConfig.Register);
似乎是核心库导致了问题。当我只更新客户端时,它没有抛出错误。
我注意到,如果我注释掉项目中所有控制器的路由属性,它就不会再抛出错误,例如
[Route("api/storage/series/{series}/documentId/{documentId}")]
但是,由于依赖应用程序的数量,删除这些并不是一个可行的解决方案。
在 Google/Binging 错误上几乎没有有用的信息。任何人都可以提供有关此错误的任何见解并建议我如何解决它吗?
想通了,或者更确切地说,是我的同事想通了。如果您查看错误,现在看起来很明显。这是由于我们的某些控制器(不是我在问题中使用的示例)上的路由属性包含 {controller}。例如
[Route("api/{controller}/editGroups")]
将其更改为使用硬编码的控制器名称(如下所示)解决了问题。
[Route("api/documents/editGroups")]