-1

我知道这已经被问过了。我在这里陷入危机。

我无法使 PUT 方法起作用。只是 REST 服务。iis 7 窗口 7 64 位。

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

请帮忙!谢谢

4

2 回答 2

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")]
于 2013-05-17T19:27:52.517 回答
0

我被否决了,但是如果您检查一下,很多人对此感到困扰。

所以,我学到的东西:

  • 启用跟踪失败的请求!!!我很不情愿,我早该这么做的。可能已经节省了一整天的时间,因为我是那种痴迷于技术问题的人。
  • PUT 方法无法在浏览器中通过 url 进行测试!!!!

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

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

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

405

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

问候

于 2013-05-18T16:26:11.140 回答