考虑以下路线
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中看不到任何相关内容。有人知道出什么问题吗?
编辑
在我的问题中,我将此问题概括为很多。我有问题
点字符似乎引起了问题。
答案 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" />