我知道这已经被问过了。我在这里陷入危机。
我无法使 PUT 方法起作用。只是 REST 服务。iis 7 窗口 7 64 位。
我得到不允许的方法,而不是一个提示。我正在使用 .svc 文件。
请帮忙!谢谢
发生这种情况的原因可能有很多,我建议您将以下内容添加到您的 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")]
我被否决了,但是如果您检查一下,很多人对此感到困扰。
所以,我学到的东西:
我终于通过卸载 WebDAV 解决了,感谢 Failed Trace!我已经尝试过了,但有时我会使用 Chrome Rest Extension 进行检查,有时还会通过浏览器中的 URL 进行检查。显然,当我第一次尝试卸载 WebDAV 时,我从未检查过 Chrome Rest ......我知道,我知道,直到昨天还是一个完整的新手。现在我只是一个新手。
我最终编写了自己的代码来使用服务以完全控制。
对于有同样问题的你们,请启用跟踪失败请求。然后,在 XML 输出中,查找:
405
接近那个你会发现导致它的混蛋。就我而言,它是 webDAV。请记住使用实际发送真正 PUT 动词的工具,例如 rest Chrome 扩展程序或您自己的应用程序。不是 Web 浏览器中的 URL。
问候