zoukankan      html  css  js  c++  java
  • 让IIS7和IIS6识别PUT和DELETE请求

        项目组最近需要开展自动化测试,针对老的Aspx页面,这个做自动化测试的成本太高,于是我们想从老代码中封装一些ashx的Restful服务出来,Restful我们使用HTTP的GET、POST、PUT、DELETE动词来解决请求的类型判断,但调用ashx的时候,请求返回405,意思是说目前的IIS配置不支持PUT或者DELETE的动词(IIS默认关闭对这些动词的支持),这里借用一下网上的图片。

    方法一:

          网上说法不一,但绝大多数是删除应用程序的Web.Config中的webdav模块,然后手动删除IIS7 模块中的WebDav模块:

          1.删除配置

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

          2.删除模块

          但这种方法不行。

          网上给出了另一种方法:

    方法二(我使用的是这种方法):

          修改IIS的配置文件,配置文件地址: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" />

          同理,如果还有什么谓词想加进来,直接在对应模块的配置内添加即可。

      IIS6的配置文件地址是:C:WINDOWSsystem32inetsrvMetaBase.xml

     

    方法三:

          有网友在stackorverflow上提供了一另一种方法:

          web.config中system.webServer添加

      <modules runAllManagedModulesForAllRequests="true" runManagedModulesForWebDavRequests="true" >
        <remove name="WebDAVModule" />
      </modules>
    
      <handlers>
        <remove name="WebDAV" />
      </handlers>

         最关键的就是在modules节点增加属性runManagedModulesForWebDavRequests="true"  

          另外补充一下,在IIS6上如果要支持PUT、DELETE请求网上有介绍说先开启webDAV扩展,再设置脚本和写权限

    参考文档:

          http://www.cnblogs.com/muchengqingxin/p/6138443.html 

          https://support.microsoft.com/zh-cn/help/942051/error-message-when-a-user-visits-a-website-that-is-hosted-on-a-server-that-is-running-internet-information-services-7.0-http-error-405.0---method-not-allowed

          http://stackoverflow.com/questions/6739124/iis-7-5-enable-put-and-delete-for-restful-service-extensionless

     

  • 相关阅读:
    java OA系统 自定义表单 流程审批 电子印章 手写文字识别 电子签名 即时通讯
    flowable 获取当前任务流程图片的输入流
    最新 接口api插件 Swagger3 更新配置详解
    springboot 集成 activiti 流程引擎
    java 在线考试系统源码 springboot 在线教育 视频直播功能 支持手机端
    阿里 Nacos 注册中心 配置启动说明
    springboot 集成外部tomcat war包部署方式
    java 监听 redis 过期事件
    springcloudalibaba 组件版本关系
    java WebSocket 即时通讯配置使用说明
  • 原文地址:https://www.cnblogs.com/gudi/p/6721704.html
Copyright © 2011-2022 走看看