加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-16 07:04:32 所属栏目:asp.Net 来源:网络整理
导读:我想在用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="Pro
我想在用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.

如果你必须使用自定义模块处理这种请求,顺便说一下,请记住,处理程序本身有责任为每个请求设置状态代码(包括它应该处理的请求,根据映射,但它不能出于任何原因)并且可能在完成时没有设置正确的值.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读