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

发布于 2024-10-03 22:19:01 字数 601 浏览 4 评论 0原文

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

对于其中一个表,主键是日期时间字段。当尝试通过 OData 服务访问特定行时,URI 如下所示:“http://server/odataservice/stats(datetime'2009-12-12T00:00:00')”。

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

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

如果我删除冒号并浏览到“http://server/odataservice/stats(datetime'2009-12- 12')" 它按预期工作。但是我对如何通过绑定到 OData 服务的 C# 客户端执行此操作一无所知。在客户端上编辑 uri 也感觉非常hacky或者在运行中的服务器上,我宁愿有一个正确的解决方案,

我使用托管的 IIS,所以据我所知,我无法更改它的配置以允许冒号,即使这是可能的。

I have an OData WCF service in my ASP.NET project that i use to read and update an SQL-Server database.

For one of the tables, the primary key is a DateTime field. When trying to access specific rows through the OData service, the uri looks like this: "http://server/odataservice/stats(datetime'2009-12-12T00:00:00')".

When trying to update this table through the service, or browsing to it, it gives only an error. The error is sent before the WCF service is ever contacted, and as far as i've been able to find it's because the IIS does not allow colons in uri's, only in queries, for security reasons (something about NTFS).

The actual IIS error is "HTTP Error 500.19 - Internal Server Error
The requested page cannot be accessed because the related configuration data for the page is invalid", but it seems a bit misleading.

If i remove the colons and browse to "http://server/odataservice/stats(datetime'2009-12-12')" it works as expected. However i'm clueless as how i'm supposed to be able to do this in by C# client that is bound to the OData service. It also feels very hacky to edit the uri on the client or on the server on the fly, i would rather have a proper solution.

I'm using a hosted IIS, so i cannot as far as i know change it's configuration to allow colons, even if that was possible.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

北方的韩爷 2024-10-10 22:19:01

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

If you've got control of the OData service application, then this may be helpful (found via the .NET Framework section at www.odata.org/developers/articles)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文