2011-12-28 79 views
1

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

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

我想这是因为URI被当作一个文件夹,我知道,这可以通过配置进行修正,但我无法找到具体的设置

任何援助将不胜感激。

+1

什么是您对该URL执行GET时的响应。如果你的服务遵循WCF数据服务使用的标准寻址方案,那么它应该是一个实体集(响应应该是一个feed),在这种情况下,PUT确实是无效的(更新实体集意味着什么?),你只能发布POST到实体集URIs。 – 2011-12-29 12:05:52

+0

感谢您的评论,我结束了自己虽然找出了这一个 – lostinplace 2011-12-29 17:28:42

回答

1

所以事实证明这是一个看跌无效的语法和删除请求:

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

有效的OData语法是:(OLKM代表唯一标识记录的关键字段的calue)

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

旧的asp.net + iis6允许你绕过这个要求,但是iis7 & .net 3.5+要求你使用正确的语法。