我试图通过Fiddler向我的Web API服务发送删除请求,并返回405“Method not allowed”错误。
我已经阅读了大量关于删除web.config中的“WebDAV”模块和类似建议(无论如何都没有在我的applicationhost.config中启用WebDAV),但我尝试过的任何工作都没有。
我的服务当前正在IIS Express 10上运行(从Visual Studio启动)。我在我的web.config文件中有这个:
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler"
preCondition="integratedMode,runtimeVersionv4.0"/>
我本以为verb="*"
片会允许DELETE,但它似乎不起作用。
另一个注意事项 - 当我在Fiddler中检查响应时,在安全标题下它说:Allow: GET, POST
。
我不确定在哪里设置“Allow”参数(我是Web API的新手)。
任何帮助将不胜感激。请告诉我您需要的其他信息,我会添加它。
谢谢!
通过创建一个新的web api项目来复制这个[qazxsw poi]
通过Fiddler,我可以在不对web.config进行任何更改的情况下点击DELETE端点。
请确保使用正确的端点,包括id参数。
例如targeting .net framework 4.7.1
//请包含id和xxxx是端口号。
如果没有http:localhost:xxxx/api/values/id
使用http:localhost:xxxx/api/values
,我得到相同的结果id
希望这可以帮助。
您可以在405 Method Not Allowed
文件夹中修改IIS Express applicationHost.config
。要为无扩展名Urls启用PUT和DELETE,请向下滚动到IIS Express applicationHost.config文件的底部,并查找以:%userprofile%\documents\IISExpress\config
开头的处理程序条目。在“verb”属性中添加PUT和DELETE,因此“verb”属性如下所示:verb =“GET,HEAD,POST,DEBUG,PUT,DELETE”
像这样更新您的Web配置
<add name="ExtensionlessUrl-Integrated-4.0"...