C# WebAPI OData服务WCF数据服务客户端删除

C# WebAPI OData服务WCF数据服务客户端删除,c#,asp.net-web-api,wcf-data-services,C#,Asp.net Web Api,Wcf Data Services,我实现了一个WebAPI Odata V3端点。然后,我在Silverlight中使用WCF数据服务客户端访问Odata端点。GET和更新工作得很好。但是,当我尝试提交删除时,我使用Fiddler看到客户端正在发送POST和X-HTTP-Method:delete而不是delete 根据文档,默认行为应该是删除请求,但要覆盖使用.UsePostTunneling=true;在数据服务客户端上发送扩展方法。当我试图设置UsePostTunneling=false时;身份验证协商失败,使其也失败 使

我实现了一个WebAPI Odata V3端点。然后,我在Silverlight中使用WCF数据服务客户端访问Odata端点。GET和更新工作得很好。但是,当我尝试提交删除时,我使用Fiddler看到客户端正在发送POST和X-HTTP-Method:delete而不是delete

根据文档,默认行为应该是删除请求,但要覆盖使用.UsePostTunneling=true;在数据服务客户端上发送扩展方法。当我试图设置UsePostTunneling=false时;身份验证协商失败,使其也失败

使用Fiddler,我可以提交一个删除请求并正确执行,所以看起来服务器工作正常


默认情况下,什么会导致客户端发送帖子而不是删除?

我无法找到更改客户端行为的方法。然而,我确实解决了我的问题。我所做的是重写服务器端的处理程序,如果请求是一个带有x-HTTP-Method:Delete的POST,我将其更改为Delete请求。详情如下:

可能重复Its,因为默认情况下IIS不允许您使用自定义HTTP谓词,如Delete。默认的是GET和POST。我试试看。但是,DELETE方法确实有效。问题是客户端将请求作为POST而不是Delete发送。将谓词添加到applicationHost.config文件没有任何影响。客户仍然将请求作为帖子发送,而不是删除。我已经做了一些进一步的研究。在WCF客户端中,SendingRequest2事件确实显示正在创建删除请求。因此,它正在被改为一个后续事件。Intelisense声明它可以由处理程序更改?有没有办法控制处理程序?