我知道这已经被问到了。我在这里遇到了危机。
我不能让PUT方法起作用。只是REST服务。 iis 7 windows 7 64位。
我得到方法不被允许,而不是一个提示。我使用的是.svc文件。
请帮忙! 感谢
答案 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)
我被投票了,但如果你到处查看,很多人都会为此感到困扰。
所以,我学到的东西:
我终于通过卸载WebDAV解决了这个问题,多亏了Failed Trace!我已经尝试过,但有时我会使用Chrome Rest Extension进行检查,有时也会通过浏览器中的URL进行检查。显然,当我尝试使用WebDAV卸载时,我从未检查过Chrome Rest ... 我知道,我知道,直到昨天还有一个完整的新手。现在我只是一个新手。
我最终编写了自己的代码来使用服务来完全控制。
对于遇到同样问题的人,请启用跟踪失败的请求。然后,在XML输出中,查找:
405
接近你会发现这个混蛋造成它。就我而言,它是webDAV。 请记住使用实际发送真实PUT动词的工具,例如其他Chrome扩展程序或您自己的应用程序。不是Web浏览器中的URL。
此致