Asp.net web api 如何使用IIS Express和Web API允许删除方法?
我正试图通过Fiddler向我的Web API服务发送一个删除请求,并返回一个405“methodnotallowed”错误 我已经广泛阅读了关于删除web.config中的“WebDAV”模块的内容以及类似的建议(无论如何,我的applicationhost.config中都没有启用WebDAV),但我尝试过的任何方法都不起作用 我的服务当前正在IIS Express 10上运行(从Visual Studio启动)。我的web.config文件中确实包含以下内容:Asp.net web api 如何使用IIS Express和Web API允许删除方法?,asp.net-web-api,web-api-testing,iis-express-10,Asp.net Web Api,Web Api Testing,Iis Express 10,我正试图通过Fiddler向我的Web API服务发送一个删除请求,并返回一个405“methodnotallowed”错误 我已经广泛阅读了关于删除web.config中的“WebDAV”模块的内容以及类似的建议(无论如何,我的applicationhost.config中都没有启用WebDAV),但我尝试过的任何方法都不起作用 我的服务当前正在IIS Express 10上运行(从Visual Studio启动)。我的web.config文件中确实包含以下内容: <add name="
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler"
preCondition="integratedMode,runtimeVersionv4.0"/>
我本以为动词=“*”
片段允许删除,但它似乎不起作用
另一个注意事项——当我在Fiddler中检查响应时,在安全标题下会显示:Allow:GET,POST
我不确定“Allow”参数设置在哪里(我对Web API不熟悉)
任何帮助都将不胜感激。请让我知道你还需要我提供什么信息,我会补充的
谢谢大家! 您可以在
%userprofile%\documents\IISExpress\config
文件夹中修改IIS ExpressapplicationHost.config
。要启用无扩展URL的放置和删除,请向下滚动到IIS Express applicationHost.config文件的底部,并查找以以下开头的处理程序条目:更新您的web配置,如这个
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules runAllManagedModulesForAllRequests="true">
<remove name="WebDAVModule"/> <!-- ADD THIS -->
</modules>
刚刚创建了一个新的webapi项目[针对.net framework 4.7.1
]
通过Fiddler,我可以在不更改web.config的情况下点击删除端点
请确保使用正确的端点,包括id参数
e、 ghttp:localhost:xxxx/api/values/id
//请包括id,xxxx是端口号
如果在没有id
的情况下使用http:localhost:xxxx/api/values
,我会得到相同的结果405方法不允许
希望这能有所帮助。谢谢您的解释。这是我的问题的根源,因为我试图传递一个要删除的对象(因为我的服务中的方法正在调用Dapper Delete方法,该方法接受一个对象,而不是一个Id)。我最终传递了一个Id,然后在调用delete方法之前从db中提取对象,结果很好。愚蠢的问题-当传递对象而不是Id时,有没有办法让DELETE动词起作用?