我在 .NET 4 中创建了一个 WCF Restful 服务,并在 IIS 7.5/windows 7 x86 下发布了它。动词 GET 和 POST 工作正常,但 DELETE 和 PUT 出现错误:
Error: The remote server returned an error: (405) Method Not Allowed.
经过谷歌搜索(大量)后,我发现问题是由 IIS 中安装(自动?不知道)的 WebDav 模块引起的。唯一对我有用的方法是找到的方法here.
然而,在我看来,从整个网站中删除 webdav 模块有点过于侵入性。有谁知道另一种方法来抑制 webdav 对动词施加的过滤操作,但仅限于特定的 Web 应用程序,而不是整个网站?
谢谢。
EDIT我知道关于缺少放置和删除仍然可以提供安静的服务- 但我一直想允许使用这些动词。
您不需要删除整个站点的模块。您可以为每个应用程序配置模块。每个应用程序的管理控制台中提供了模块部分。
您确实必须删除 REST 服务应用程序的 WebDav,因为 PUT 和 DELETE 动词以前是为 WebDav 定义的,并由 WebDav 自动使用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)