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


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

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


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

01using System;
02using System.Web;
03 
04namespace ProHttpHandler.Pub
05{
06    /// <summary>
07    /// 处理程序映射
08    /// 作者:www.yunjson.com
09    /// </summary>
10    public class Index : IHttpHandler
11    {
12        /// <summary>
13        /// 您将需要在您网站的 web.config 文件中配置此处理程序,
14        /// 并向 IIS 注册此处理程序,然后才能进行使用。有关详细信息,
15        /// 请参见下面的链接: http://go.microsoft.com/?linkid=8101007
16        /// </summary>
17        #region IHttpHandler Members
18 
19        public bool IsReusable
20        {
21            // 如果无法为其他请求重用托管处理程序,则返回 false。
22            // 如果按请求保留某些状态信息,则通常这将为 false。
23            get { return true; }
24        }
25 
26        public void ProcessRequest(HttpContext context)
27        {
28            //在此写入您的处理程序实现。
29            context.Response.Write("Hello, World 处理程序映射");
30        }
31 
32        #endregion
33    }
34}


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


01<!DOCTYPE html>
02<html>
03<head>
04    <title></title>
05</head>
06<body>
07<!--作者:www.yunjson.com-->
08打开浏览器后,把浏览器地址页面"HTMLPage1.html"换成index.html 打开试试
09</body>
10</html>


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

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

01<?xml version="1.0"?>
02<configuration>
03  <!--IIS经典模式下使用作者:www.yunjson.com-->
04  <system.web>
05    <httpHandlers>
06      <add path="index.html" verb="*" type="ProHttpHandler.Pub.Index"/>
07    </httpHandlers>
08  </system.web>
09  <!--<system.webServer>
10    -->
11  <!--IIS集成模式下使用-->
12  <!--
13    <handlers>
14      <add name="Pub" path="index.html" verb="*" type="ProHttpHandler.Pub.Index"/>
15    </handlers>
16    <modules runAllManagedModulesForAllRequests="true"/>
17  </system.webServer>-->
18</configuration>


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

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



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


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


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