我们的网站有一个MVC Rest API。 最近,现场服务器和我的开发机器都停止接受DELETE请求,而是返回了501 Not Implemented响应。
在我的开发机器上,这是运行IIS7.5的Windows 7,解决scheme是将这些行添加到我们的Web.config中的system.webServer / handlers下:
<remove name="ExtensionlessUrlHandler-Integrated-4.0" /> ... <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE" type="System.Web.Handlers.TransferRequestHandler" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode,runtimeVersionv4.0" />
但是,这不适用于我们的任何现场服务器; 不在Sever 2008 + IIS7.5上,而不在Server 2012 + IIS8上。
在请求筛选中没有设置动词,WebDAV也没有安装在我们的任何一台活动服务器上。
错误页面没有提供进一步的信息,也没有任何logging在日志中。 如何找出阻止DELETE请求在iis7.5和iis8中工作的原因?
我知道这是一个“死亡的问题”,但我已经find了它,同时试图find我的问题的答案。 我的PUT请求每次给了我501,我已经在通用configuration中添加了PUT动词,并且已经添加到了PUT动词中configuration.vs目录,但没有任何帮助。
之后,我重新检查了我的控制器,并发现了无法parsing的接口依赖关系,所以我现在就修好了。 所以我想说的是:如果添加动词没有帮助,请检查您的代码是否有错误。