我在.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.
经过谷歌搜索(很多),我发现问题是由在IIS中安装(自动?dunno)的WebDav模块引起的。对我有用的唯一方法是发现here。
但是,在我看来,从整个网站中删除webdav模块有点过于干扰。有没有人知道另一种方法来禁止对webdav强加的动词进行过滤操作,但仅限于特定的Web应用程序,而不是整个网站?
谢谢。
修改 我知道missing put and delete still leads to restful service - 但我一直想要允许这些动词。
答案 0 :(得分:12)
您无需删除整个网站的模块。您可以为每个应用程序配置模块每个应用程序的管理控制台中都有模块部分。
你真的必须删除Web服务应用程序的WebDav,因为PUT和DELETE谓词以前是为WebDav定义的,并且是由WebDav自动使用的。