我有一个基本的 WebAPI OData 应用程序,如果参数有一个“.”,它似乎拒绝将请求路由到我的 Controller 。
例如:
http://localhost.com/vroot/odata/foo ('abc') <== 正确路由
http://localhost.com/vroot/odata/foo ('a.bc') <== 返回 404 错误
即使替换“.”,我也会收到相同的 404 错误有一个 %2E。
http://localhost.com/vroot/odata/foo ('a%2Ebc') <== 返回 404 错误
这是 WebAPI OData 中普遍理解的问题吗?
关于可能发生的事情的任何想法(或者可能如何解决这个问题?)
最佳答案
IIS 对请求 url 中的点有不同的解释,因此请尝试在 web.config 中添加以下设置:
<modules>
<remove name="UrlRoutingModule-4.0" />
<add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="" />
</modules>
(从这里开始:http://www.britishdeveloper.co.uk/2010/06/dont-use-modules-runallmanagedmodulesfo.html)
与您的问题相关的一些帖子:
Dots in URL causes 404 with ASP.NET mvc and IIS
关于c# - WebAPI OData 无法处理参数中的点(即 '.' )?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23545320/