在将Asp.Net WebApi 5.2.2更新为5.2.7

时间:2019-03-06 08:24:22

标签: c# asp.net-web-api2

考虑以下路线

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时,控制器会通过网址触发

第二种情况导致param2 =“ b / c / d / e”,这就是该通用路由的工作方式(至少对于版本5.2.2)。

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

编辑

在我的问题中,我将此问题概括为很多。我有问题

点字符似乎引起了问题。

1 个答案:

答案 0 :(得分:0)

在我的情况下,解决方案如下。我必须添加一个额外的无扩展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" />