2016-03-16 30 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