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

Alf*_*dBr 3 c# asp.net odata asp.net-web-api

我有一个基本的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( '一%2Ebc')<==返回404错误

这是WebAPI OData中普遍理解的问题吗?

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

Kir*_*lla 7

请求URL中的点由IIS进行不同的解释,因此请尝试在web.config中添加以下设置:

<modules>
  <remove name="UrlRoutingModule-4.0" />
  <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="" />
</modules>
Run Code Online (Sandbox Code Playgroud)

(从这里:http://www.britishdeveloper.co.uk/2010/06/dont-use-modules-runallmanagedmodulesfo.html)

一些与您的问题相关的帖子:
URL中的Dots导致404使用ASP.NET mvc和IIS