我的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,所以我不能根据我的要求更改它的配置以允许冒号,即使这是可能的。
答案 0 :(得分:1)
如果你已经掌握了OData服务应用程序,那么this可能会有所帮助(可以通过www.abata.org/developers/articles上的.NET Framework部分找到)