WebDav为restfull WCF Web服务带来麻烦

lms*_*asu 6 rest wcf webdav .net-4.0 iis-7.5

我在.NET 4中创建了一个WCF restfull服务,我在IIS 7.5/windows 7 x86下发布了它.动词GET和POST工作正常,但是DELETE和PUT给出了一个错误:

Error: The remote server returned an error: (405) Method Not Allowed.
Run Code Online (Sandbox Code Playgroud)

在谷歌搜索(很多)之后,我发现问题是由在IIS中安装(自动?dunno)的WebDav模块引起的.对我有用的唯一方法是在这里找到的方法.

但是,在我看来,从整个网站中删除webdav模块有点过于干扰.有没有人知道另一种方法来禁止对webdav强加的动词进行过滤操作,但仅限于特定的Web应用程序,而不是整个网站?

谢谢.

编辑 我知道丢失put和删除仍然导致宁静的服务 - 但我一直想要允许这些动词.

Lad*_*nka 12

您不需要删除整个站点的模块.您可以为每个应用程序配置模块 每个应用程序的管理控制台中都有模块部分.

您真的必须删除Web服务的RESTD服务应用程序,因为PUT和DELETE谓词以前是为WebDav定义的并且是由WebDav自动使用的.

  • +1:是的......我添加了:<modules runAllManagedModulesForAllRequests ="true"> <remove name ="WebDAVModule"/> </ modules> (3认同)