2016-03-16 28 views
0

我們有一個運行MVC4前端的應用程序正在使用web api2 rest PUT。它運行在IIS 8.5和Windows Server 2012中PutAsync不工作 - web Api2和MVC4

我正在使用PutAsync更新一些數據,但得到405 - 方法不允許回來。我環顧四周,發現有些人有這個問題,並通過在API的web.config中使用一些或其他技術來解決問題。

我在Web API配置中試過這個,它對我很有用。

<modules runAllManagedModulesForAllRequests="true"> 
    <remove name="WebDAVModule" /> 
</modules> 

<handlers> 
<remove name="WebDAV" /> 
</handlers> 

但我不知道爲什麼。我沒有爲我的網站定義任何webdav創作規則。有人能幫助我理解爲什麼這可能對我有用嗎?

另外,是否有API的設置runAllManagedModulesForAllRequests = true的缺點?

回答

0

該配置可以從machine.config進行無線連接。欲瞭解更多信息,Configuration Inheritance in this page。它也可以從包含文件夾中的任何其他web.config繼承。

runAllManagedModulesForAllRequests意味着對包含此web.config的文件夾(和子文件夾)所做的任何請求都將處理到已註冊的模塊。例如,它會嘗試處理請求,看起來不像Web API操作。請看這個:<modules runAllManagedModulesForAllRequests="true" /> Meaning