【问题标题】:Cannot access WCF OData service with DateTime key because of colon由于冒号,无法使用 DateTime 键访问 WCF OData 服务
【发布时间】: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


    【解决方案1】:

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

    【讨论】:

    • 我试过了,但据我所知,它仍然不接受路径。可能是托管的 IIS 不允许此配置更改。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-29
    • 2023-03-15
    • 2012-05-21
    • 1970-01-01
    • 1970-01-01
    • 2022-07-29
    相关资源
    最近更新 更多