gpt4 book ai didi

asp.net-mvc-3 - 在 IIS 7/7.5 中注册 PATCH HTTP 动词

转载 作者:行者123 更新时间:2023-12-04 18:48:37 24 4
gpt4 key购买 nike

我想在使用 ASP MVC 3 实现的 RESTful 服务中实现最近批准的 PATCH HTTP 动词。我在 web.config 文件中添加了以下设置。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="PATCHVerbHandler" path="*" verb="PATCH" modules="ProtocolSupportModule" requireAccess="None" />
</handlers>
<security>
<requestFiltering>
<verbs>
<add verb="PATCH" allowed="true" />
</verbs>
</requestFiltering>
</security>
</system.webServer>
</configuration>

Action 方法用 AcceptVerbs("PATCH") 修饰。属性。

该服务与 PATCH 动词一起正常工作。 URL 被路由到正确的操作方法并返回正确的数据。

奇怪的问题是,如果我使用不匹配任何使用 PATCH 动词的路由的不同 URL,IIS 返回“200 OK”而不是“404 Not Found”。所有标准动词(GET、PUT、DELETE、POST、HEAD、OPTIONS)都没有这个问题。

我需要为 PATCH 动词注册额外的处理程序还是路由问题?任何帮助表示赞赏。

最佳答案

您实际上不需要自定义处理程序来处理使用 PATCH 动词发出的 HTTP 请求;相反,您可能希望继续使用 AcceptVerbs("PATCH") 来装饰您的操作。属性,同时检查 ASP.NET ISAPI 是否配置为处理任何动词(这是默认设置),包括 PATCH。

如果您必须使用自定义模块处理此类请求,请记住,处理程序本身有责任为每个请求设置状态代码(包括它应该处理的那些,根据映射,但它不能出于任何原因),也许它在完成时没有设置正确的值。

关于asp.net-mvc-3 - 在 IIS 7/7.5 中注册 PATCH HTTP 动词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9773109/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com