【问题标题】:IIS Express denying PUT requests in ADO.Net data servicesIIS Express 拒绝 ADO.Net 数据服务中的 PUT 请求
【发布时间】:2011-12-28 17:45:28
【问题描述】:

我有一个使用 ado.net 数据服务的项目。这个项目最初是在 VS2005 和 IIS6 中开发的,但我现在将它移植到 IIS7 标准。我在尝试更新现有记录时遇到了问题,put 操作(对服务)失败并提示以下浏览器警报:

URI 'http://localhost:6188/services/Datatracker.svc/provider' 对 PUT 操作无效。 PUT 操作的 URI 必须指向单个资源。

我想这是因为 URI 被视为一个文件夹,我知道这可以通过配置来纠正,但我无法找到具体设置

我们将不胜感激。

【问题讨论】:

  • 当您对该 URL 执行 GET 时,响应是什么。如果您的服务遵循 WCF 数据服务使用的标准寻址方案,那么它应该是一个实体集(响应应该是一个提要),在这种情况下 PUT 确实无效(更新实体集意味着什么?)您只能向实体集 URI 发出 POST。
  • 感谢您的评论,不过我最终还是自己解决了这个问题

标签: asp.net iis-7 iis-6 wcf-data-services


【解决方案1】:

事实证明,这对于 put 和 delete 请求是无效的语法:

http://localhost:6188/services/Datatracker.svc/provider

有效的odata语法是:(OLKM代表唯一标识记录的keyfield的calue)

http://localhost:6188/services/Datatracker.svc/provider('OLKM')

旧的 asp.net + iis6 允许您在此要求上作弊,但 iis7 和 .net 3.5+ 要求您使用正确的语法。

【讨论】:

    猜你喜欢
    • 2019-07-15
    • 2017-04-09
    • 2015-03-14
    • 2017-01-31
    • 1970-01-01
    • 2012-10-08
    • 2018-10-06
    • 2023-03-27
    • 2023-02-14
    相关资源
    最近更新 更多