由于冒号,无法使用DateTime键访问WCF OData服务

时间:2010-11-22 12:12:17

标签: c# asp.net wcf iis-7 odata

我的ASP.NET项目中有一个OData WCF服务,用于读取和更新SQL-Server数据库。

对于其中一个表,主键是DateTime字段。当尝试通过OData服务访问特定行时,uri看起来像这样:“http:// server / odataservice / stats(datetime'2009-12-12T00:00:00')”。

尝试通过服务更新此表或浏览到该表时,它只会出错。错误是在联系WCF服务之前发送的,并且只要我能够找到它,因为IIS不允许在uri中使用冒号,仅在查询中,出于安全原因(关于NTFS)。

实际的IIS错误是“HTTP错误500.19 - 内部服务器错误 无法访问请求的页面,因为页面的相关配置数据无效“,但似乎有点误导。

如果我删除冒号并浏览到“http:// server / odataservice / stats(datetime'2009-12-12')”它按预期工作。但是我无能为力,因为我应该能够通过绑定到OData服务的C#客户端来实现这一点。在客户端或服务器上动态编辑uri也感觉非常hack,我宁愿有一个合适的解决方案。

我正在使用托管的IIS,所以我不能根据我的要求更改它的配置以允许冒号,即使这是可能的。

1 个答案:

答案 0 :(得分:1)

如果你已经掌握了OData服务应用程序,那么this可能会有所帮助(可以通过www.abata.org/developers/articles上的.NET Framework部分找到)