默认情况下,IIS拒绝PUT和Delete请求,原因为IIS默认注册了一个名为"WebDAVModule"的自定义HttpModule导致的,WebDAV的全称为"Web-based Distributed Authoring and Versioning",它是一个在多用户之间辅助协同编辑和管理在线文档的HTTP扩展,该扩展使应用程序可以直接将文件写到Web Server上,同时支持文件的枷锁和版本控制.
微软是推动WebDAV成为一个标准的主导力量,它自己利用自定义的HttpModule实现了针对WebDAV的支持.但是这个默认注册(注册名为"WebDAVModule")会拒绝HTTP方法为PUT和DELETE的请求,解决这个问题最为直接的方式就是利用如下的配置将注册的HttpModule移除.
<configuration> <system.webServer> <modules runAllManagedModulesForAllRequests="true"> <remove name="webDAVModule"/> </modules> <system.webServer> </configuration>