WebAPI OData不能处理参数中的点(即'。')?

时间:2014-05-08 14:52:54

标签: c# asp.net asp.net-web-api odata

我有一个基本的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中普遍理解的问题吗?

关于可能发生的事情的任何想法(或者可能如何解决这个问题?)

1 个答案:

答案 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