【发布时间】:2010-11-22 12:12:17
【问题描述】:
我的 ASP.NET 项目中有一个 OData WCF 服务,用于读取和更新 SQL-Server 数据库。
对于其中一个表,主键是 DateTime 字段。尝试通过 OData 服务访问特定行时,URI 如下所示:“http://server/odataservice/stats(datetime'2009-12-12T00:00:00')”。
当尝试通过服务更新此表或浏览到它时,它只给出一个错误。该错误是在联系 WCF 服务之前发送的,据我所知,这是因为出于安全原因(关于 NTFS),IIS 不允许在 uri 中使用冒号,只能在查询中使用冒号。
实际的 IIS 错误是“HTTP Error 500.19 - Internal Server Error 无法访问请求的页面,因为该页面的相关配置数据无效”,但似乎有点误导。
如果我删除冒号并浏览到“http://server/odataservice/stats(datetime'2009-12-12')”,它会按预期工作。但是,我不知道我应该如何通过绑定到 OData 服务的 C# 客户端来执行此操作。在客户端或服务器上动态编辑 uri 也感觉非常 hacky,我宁愿有一个合适的解决方案。
我使用的是托管 IIS,所以据我所知,我无法更改其配置以允许使用冒号,即使这是可能的。
【问题讨论】:
标签: c# asp.net wcf iis-7 odata