我有一个基本的WebAPI OData应用程序,如果参数有一个',它似乎拒绝将请求路由到我的控制器。在它。
例如:
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中普遍理解的问题吗?
关于可能发生的事情的任何想法(或者可能如何解决这个问题?)
答案 0 :(得分:6)
请求URL中的点由IIS进行不同的解释,因此请尝试在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