如何让 OData DELETE 工作?
Posted
技术标签:
【中文标题】如何让 OData DELETE 工作?【英文标题】:How can I get OData DELETE to work? 【发布时间】:2011-10-05 13:06:20 【问题描述】:我创建了一个 OData 服务(WCF 数据服务)和一个消费者来测试它。
以前,当我尝试删除时,我收到了 WebDAV 405 错误消息“不允许使用方法”。
于是我google了一下,发现:
http://nikhilthaker86.wordpress.com/2010/03/27/issue-hosting-restful-services-on-iis-7/
我按照说明在 IIS 7 中从我的网站(服务)中删除了 WebDav 模块。
现在我收到此错误消息:
“HTTP 错误 500.21 - 内部服务器错误
处理程序“WebDAV”的模块列表中有一个错误模块“WebDAVModule”
模块:IIS Web 核心 通知:ExecuteRequestHandler"
如果您有解决方案可以解决此问题,我将不胜感激...否则,如果您是 IIS 专家,并且您在想“这个人不知道自己在做什么”,请指出一些有用的在线阅读材料的方向。
提前致谢。
【问题讨论】:
【参考方案1】:WebDAV 模块将阻止 IIS 的 DELETE 和 PUT(更新)动词。您可以卸载 WebDAV(推荐)或直接从站点的处理程序中删除它。更多细节可以在这里找到:http://forums.iis.net/t/1166025.aspx
执行此操作的一种方法是将以下 remove
行添加到您网站的 web.config:
<system.webServer>
<modules>
<remove name="WebDAVModule" />
</modules>
<handlers>
<remove name="WebDAV" />
</handlers>
</system.webServer>
【讨论】:
谢谢。按照您提供的链接中的网站说明进行操作后,它起作用了!运行 IIS7,选择站点,从功能视图中打开模块,删除 WebDAV,从功能视图中打开处理程序映射,删除 WebDAV。重启 IIS7。 这也解决了我们的问题。我从@TRayburn 提供的链接中添加了 web.config 示例,因为我认为它比手动方法更好。 这让我发疯了。我删除了WebDAVModule
,但忘记了处理程序。在我删除 WebDAV
之前,它会抛出 500 个错误。
只是添加到这个答案:来自 IIS 媒体服务的 LiveStreamingHandler 也可能会阻止 DELETE 和 PUT 动词。以上是关于如何让 OData DELETE 工作?的主要内容,如果未能解决你的问题,请参考以下文章
如何让 Apache Tomcat 接受 DELETE 方法
MarkLogic 的“xdmp:collection-delete”是如何工作的?