2013-05-17 129 views
-1

我知道這已經被問到。我在這裏陷入危機。方法不允許在REST PUT

我無法使PUT方法正常工作。只需REST服務。 iis 7 windows 7 64位。

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

請幫忙! 謝謝

+0

錯誤信息究竟是什麼?你想要執行什麼代碼? –

回答

0

我被低估了,但如果你檢查一下,很多人都被這個困擾。

所以,事情我瞭解到:

  • 啓用跟蹤失敗請求!我一直在追求,而我本來應該做到這一點。可能已經整天攢了一天,因爲我是那種迷戀技術問題的人。
  • PUT方法無法在瀏覽器中通過url進行測試!!!!

我終於解決了它卸載WebDAV,感謝失敗跟蹤!我已經嘗試過了,但我有時會使用Chrome Rest Extension進行檢查,有時也會通過瀏覽器中的URL進行檢查。顯然,當我嘗試WebDAV卸載時,我從來沒有檢查與鉻休息... 我知道,我知道,直到昨天一個完整的新手。現在我只是一個新手。

我最終編寫自己的代碼來使用服務來完全控制。

對於你們有同樣的問題,請啓用追蹤失敗的請求。然後,在XML輸出中,查找:

接近,你會發現這個混蛋導致它。在我的情況下,它是webDAV。 記住要使用實際發送真正的PUT動詞的工具,就像其他Chrome擴展程序或您自己的應用程序一樣。 NOT Web瀏覽器中的URL。

Regards

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> 

而且,你把放在操作方法合同象下面這樣:

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

那就是問題所在。很多原因! –

相關問題