REST PUT中不允许的方法

时间:2013-05-17 19:23:03

标签: rest iis

我知道这已经被问到了。我在这里遇到了危机。

我不能让PUT方法起作用。只是REST服务。 iis 7 windows 7 64位。

我得到方法不被允许,而不是一个提示。我使用的是.svc文件。

请帮忙! 感谢

2 个答案:

答案 0 :(得分:2)

可能有很多原因导致这种情况发生,我建议您将以下内容添加到您的web.config中(就在关闭之前),以便您可以获得有关WCF Web服务正在执行的操作的一些诊断信息:

 <system.diagnostics>
<sources>
  <source name="System.ServiceModel"
          switchValue="Information, ActivityTracing"
          propagateActivity="true">
    <listeners>
      <add name="traceListener"
          type="System.Diagnostics.XmlWriterTraceListener"
          initializeData= "c:\temp\webservicelog.svclog" />
    </listeners>
  </source>
</sources>

另外,您是否将PUT放在方法操作合同中,如下所示:

 [OperationContract]
 [WebInvoke(Method = "PUT", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Bare, UriTemplate = "DoWork")]

答案 1 :(得分:0)

我被投票了,但如果你到处查看,很多人都会为此感到困扰。

所以,我学到的东西:

  • ENABLE Trace Failed Requests !!!我不情愿,我以前应该这样做。可能已经攒了一整天,因为我是那种因技术问题而迷恋的人。
  • PUT方法无法通过浏览器中的url进行测试!!!!

我终于通过卸载WebDAV解决了这个问题,多亏了Failed Trace!我已经尝试过,但有时我会使用Chrome Rest Extension进行检查,有时也会通过浏览器中的URL进行检查。显然,当我尝试使用WebDAV卸载时,我从未检查过Chrome Rest ... 我知道,我知道,直到昨天还有一个完整的新手。现在我只是一个新手。

我最终编写了自己的代码来使用服务来完全控制。

对于遇到同样问题的人,请启用跟踪失败的请求。然后,在XML输出中,查找:

405

接近你会发现这个混蛋造成它。就我而言,它是webDAV。 请记住使用实际发送真实PUT动词的工具,例如其他Chrome扩展程序或您自己的应用程序。不是Web浏览器中的URL。

此致