在更新 Asp.Net WebApi 5.2.2 到 5.2.7 后捕获所有不工作的路由

Catch all routes not working after update Asp.Net WebApi 5.2.2 to 5.2.7

考虑以下路线

HttpConfiguration config = new HttpConfiguration();
config.Routes.MapHttpRoute(
    "myApi",
    baseRoute + "myApi/file/{param1}/{*param2}",
    new {controller = "File"}
);

这个包罗万象的路由触发了 FileController

[HttpGet]
public object Get(string param1, string param2)
{
    //...
}

对于 WebApi 5.2.2,控制器是通过 url 触发的

第二种情况导致 param2 = "b/c/d/e" 这就是这个包罗万象的路由的工作原理(至少对于版本 5.2.2)。

现在的问题是,对于版本 5.2.7,第二种情况不再有效。我在 release notes 中看不到任何相关内容。有人知道问题出在哪里吗?

编辑

我在问题中概括了很多问题。我有问题

点字符似乎导致了问题。

我的解决方案如下。我不得不添加一个额外的无扩展 url 处理程序。

因此

<add name="ExtensionlessUrlHandler-Integrated-4.0_1a" path="*" verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />

我需要

<add name="ExtensionlessUrlHandler-Integrated-4.0_1a" path="*.*" verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />