如何允许使用IIS Express和Web API的DELETE方法?

问题描述 投票:0回答:3

我试图通过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的新手)。

任何帮助将不胜感激。请告诉我您需要的其他信息,我会添加它。

谢谢!

asp.net-web-api web-api-testing iis-express-10
3个回答
1
投票

通过创建一个新的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

希望这可以帮助。


1
投票

您可以在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”


0
投票

像这样更新您的Web配置

<add name="ExtensionlessUrl-Integrated-4.0"...
© www.soinside.com 2019 - 2024. All rights reserved.