zoukankan      html  css  js  c++  java
  • 在IIS托管服务中设置Rewrite重定向到webapi接口

    最近公司遇到这样一个问题。公司以前使用一个SiteServer CMS开源框架来搭建网站,是以asp.net开发的,并且托管在IIS中。其中出现了一个问题,就是用ajax访问不了这个框架后台的webapi接口,报404错误。当时还以为是模块处理程序的问题,测试了多遍,还是找不出原因。况且公司运营这个网站有个好几年了,里面的文件众多,光容量就有几十个G,不可能说重构就重构吧?自己又有众多业务在身,没有那么多时间。好吧,我把这个框架的bin目录里面重要的dll文件拷贝过来,新建一个工程项目,然后发布到服务器上,专门用作webapi站点,接下来就在以前那个站点下用Rewrite重定向模块来把前端需要访问的webapi接口重定向到这个新建的webapi站点,这样可以暂时解决这个问题。

    Url Rewrite Module安装程序可以去这个地址下载:https://www.iis.net/downloads/microsoft/url-rewrite

    Url Rewrite Module的使用可以参考这篇文章:https://docs.microsoft.com/en-us/iis/extensions/url-rewrite-module/using-url-rewrite-module-20

    rewrite重写模块需要包含在system.webServer节点中,其配置如下图所示:

    关键名词释义:

    PATH_INFO:表示一个url地址的path部分;

    {R:1}:这个和正则表达式的捕获一样,1代表那个被捕获的括号里面的字符串的索引;

    这个配置中最关键的要属action节点的redirectType属性,如果是其他属性值,则不能重定向post方法的接口,只会重定向get方法,如果定义为Temporary值,则可以重定向post方法的接口

    后记:

    接口出现404的结果,是因为缺少了Global.asax文件,补上就可以了。

  • 相关阅读:
    【C++】基础及引用
    gradle打包分编译环境
    gradle
    MediaPlayer滑动不准的问题
    python初步入门
    音频播放服务
    《深入理解Android2》读书笔记(二)
    缓存(LruCache)机制
    handler机制
    监听网络状态
  • 原文地址:https://www.cnblogs.com/williamwsj/p/10490116.html
Copyright © 2011-2022 走看看