.Net中处理程序映射-访问路径虚拟化,不知道从哪里翻出来了这个好多年前的DEMO,意思就是将Index.cs虚拟化成一个可访问到的html页面


特别是在接口开发设计中,可以从一定程度上隐藏页面的真实路径,实际上在.Net中,一个.cs后缀的文件属于一个类文件,不能直接用于外部访问,

如果非要直接访问某个.cs类文件的话,只能通过处理映射关系来处理了,相当于给此文件起一个可供直接访问的别名。


第一步:添加一个类库项目ProHttpHandler,在此项目下创建一个Pub/Index.cs类文件

using System;
using System.Web;

namespace ProHttpHandler.Pub
{
    /// <summary>
    /// 处理程序映射
    /// 作者:www.jsons.cn
    /// </summary>
    public class Index : IHttpHandler
    {
        /// <summary>
        /// 您将需要在您网站的 web.config 文件中配置此处理程序,
        /// 并向 IIS 注册此处理程序,然后才能进行使用。有关详细信息,
        /// 请参见下面的链接: http://go.microsoft.com/?linkid=8101007
        /// </summary>
        #region IHttpHandler Members

        public bool IsReusable
        {
            // 如果无法为其他请求重用托管处理程序,则返回 false。
            // 如果按请求保留某些状态信息,则通常这将为 false。
            get { return true; }
        }

        public void ProcessRequest(HttpContext context)
        {
            //在此写入您的处理程序实现。
            context.Response.Write("Hello, World 处理程序映射");
        }

        #endregion
    }
}


第二步,添加一个名为ProMapping的Web项目,在此项目下,添加一个Pub目录,在Pub目录下随便新建一个html页面:Pub/xxxxxx.html


<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
<!--作者:www.jsons.cn-->
打开浏览器后,把浏览器地址页面"HTMLPage1.html"换成index.html 打开试试 
</body>
</html>


第三步,在步骤二里提到的ProMapping项目中,Pub目录下,新建一个Pub/Web.config文件,按如下完成配置(具体参数可自行修改)

以下配置相当于映射了一个index.html的地址,去访问ProHttpHandler项目中的Pub/Index.cs类文件

<?xml version="1.0"?>
<configuration>
  <!--IIS经典模式下使用作者:www.jsons.cn-->
  <system.web>
    <httpHandlers>
      <add path="index.html" verb="*" type="ProHttpHandler.Pub.Index"/>
    </httpHandlers>
  </system.web>
  <!--<system.webServer>
    -->
  <!--IIS集成模式下使用-->
  <!--
    <handlers>
      <add name="Pub" path="index.html" verb="*" type="ProHttpHandler.Pub.Index"/>
    </handlers>
    <modules runAllManagedModulesForAllRequests="true"/>
  </system.webServer>-->
</configuration>


第四步,完成以上三步设置后,即可运行ProMapping即Web项目下刚刚新建的Pub/xxxxxx.html文件

运行到这里只是启动了项目,可以试试在Config中设置的那个index.html,浏览器地址栏的地址直接改成index.html试试看



页面输出的Hello, World 处理程序映射,即是那个Index.cs文件中输出的内容。是不是很简单,接口项目建议使用此虚拟化路径。


如有不明白的可下载此附件源码仔细研究。


处理程序映射项目-访问地址虚拟化Demo源码下载


原文链接:.Net中处理程序映射-访问路径虚拟化