• 让IIS识别PUT和DELETE请求


    转眼间年底了,突然的我就挪了窝。新的公司,新的电脑,新的服务器。。。。面对新环境,手有些痒,于是试着编写自己的简易版restful API。

    restful的话,对资源的相应操作应该被体现成http动词,增删改查对应动词应为post、delete、put、get。

    按照思路写出一个demo以后,运行,结果是这样的:

    好吧,被拦截了,怎么设置呢?网友们的回答五花八门——

    有删除webdav模块的:

    <system.webServer>  
         <modules>  
             <remove name="WebDAVModule" />  
         </modules>  
         <handlers>  
             <remove name="WebDAV" />  
         </handlers>  
     </system.webServer>

    有说是因为权限不足造成的,有说是因为页面form太多造成的,有说是因为…………

    以上一众网友不论对错,对此处问题都是无效的。

    其实关键信息就隐藏在大家都能看得到的地方:

    这个链接看过以后,相信大家心里都有谱了:修改配置。

    配置文件在这里:C:WindowsSystem32inetsrvconfigapplicationhost.config

    需要注意的是该文件无法直接打开,先转跳至目录内在进行操作即可。

    在这个文件内找到handlers标记,该标记下有所有模块的配置,修改对应模块允许的谓词即可,如:

     <add name="SimpleHandlerFactory-ISAPI-4.0_64bit" path="*.ashx" verb="GET,HEAD,POST,DEBUG,PUT,DELETE" modules="IsapiModule" scriptProcessor="C:Windows
    
    Microsoft.NETFramework64v4.0.30319aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />

    我这里将PUT和DELETE加了进去,运行:

    可以看到,delete已经被支持,put也一样,同理,如果还有什么谓词想加进来,直接在对应模块的配置内添加即可。

    如果还是不可以,请手动删除IIS中的WebDav模块,如下图:

    希望可以帮到大家~

  • 相关阅读:
    HTTP请求方法 GET POST【总结】
    Data Binding MVVM 数据绑定 总结
    Butter Knife 黄油刀
    原生JS强大DOM选择器querySelector与querySelectorAll
    JS日期Date详解与实例扩展
    JS中的冒泡排序以及实现一个数组中得最到最大的数字小例
    jquery.roundabout.js实现3D图片层叠旋转木马切换
    AngularJS 表格
    AngularJS XMLHttpRequest
    AngularJS Filters
  • 原文地址:https://www.cnblogs.com/muchengqingxin/p/6138443.html
Copyright © 2020-2023  润新知