MVC 5 WebRequest URL中的尾随点导致404

时间:2015-10-21 14:52:31

标签: asp.net-mvc api url http-status-code-404

我正在运行MVC 5并拥有一个搜索API,可以生成以下链接:/SearchedItem.?format=json其中SearchedItem.是用户输入搜索的内容。由于dot字符,这显然会导致着名的404。我已经研究了以下所有解决方案:

Dot character '.' in MVC Web API 2 for request such as api/people/STAFF.45287

Dots in URL causes 404 with ASP.NET mvc and IIS

ApiController returns 404 when ID contains period

但是,既没有添加斜杠(同时尝试了/SearchedItem./?format=json/SearchedItem.?format=json/)也没有添加RAMMFAR

寻找任何新建议。

2 个答案:

答案 0 :(得分:1)

你必须改变你的web.config,尾随点让我们认为你正在访问一个图像。

在system.webServer / handlers(web.config)

中添加以下内容
<add name="ApiURIs-ISAPI-Integrated-4.0"
 path="/api/*"
 verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS"
 type="System.Web.Handlers.TransferRequestHandler"
 preCondition="integratedMode,runtimeVersionv4.0" />

另一个建议是将RunAllManagedModulesForAllRequests设置为true,但我不建议这样做。所有静态资产都将通过.net代码处理,然后:)

我在您的问题中看到您检查了相关链接。但你确定吗?因为我过去和以上都是我的解决方案......

答案 1 :(得分:0)

最合适的方法是在路由到url后进行编码并在相应的操作中解码,您可以使用HttpUtility执行编码和解码

如果您不想编码和解码,请尝试添加relaxedUrlToFileSystemMapping配置,如解释Here