.Net中處理程序映射-訪問路徑虛擬化,不知道從哪里翻出來了這個(gè)好多年前的DEMO,意思就是將Index.cs虛擬化成一個(gè)可訪問到的html頁面


特別是在接口開發(fā)設(shè)計(jì)中,可以從一定程度上隱藏頁面的真實(shí)路徑,實(shí)際上在.Net中,一個(gè).cs后綴的文件屬于一個(gè)類文件,不能直接用于外部訪問,

如果非要直接訪問某個(gè).cs類文件的話,只能通過處理映射關(guān)系來處理了,相當(dāng)于給此文件起一個(gè)可供直接訪問的別名。


第一步:添加一個(gè)類庫項(xiàng)目ProHttpHandler,在此項(xiàng)目下創(chuàng)建一個(gè)Pub/Index.cs類文件

using System;
using System.Web;

namespace ProHttpHandler.Pub
{
    /// <summary>
    /// 處理程序映射
    /// 作者:hnxxbl.cn
    /// </summary>
    public class Index : IHttpHandler
    {
        /// <summary>
        /// 您將需要在您網(wǎng)站的 web.config 文件中配置此處理程序,
        /// 并向 IIS 注冊(cè)此處理程序,然后才能進(jìn)行使用。有關(guān)詳細(xì)信息,
        /// 請(qǐng)參見下面的鏈接: http://go.microsoft.com/?linkid=8101007
        /// </summary>
        #region IHttpHandler Members

        public bool IsReusable
        {
            // 如果無法為其他請(qǐng)求重用托管處理程序,則返回 false。
            // 如果按請(qǐng)求保留某些狀態(tài)信息,則通常這將為 false。
            get { return true; }
        }

        public void ProcessRequest(HttpContext context)
        {
            //在此寫入您的處理程序?qū)崿F(xiàn)。
            context.Response.Write("Hello, World 處理程序映射");
        }

        #endregion
    }
}


第二步,添加一個(gè)名為ProMapping的Web項(xiàng)目,在此項(xiàng)目下,添加一個(gè)Pub目錄,在Pub目錄下隨便新建一個(gè)html頁面:Pub/xxxxxx.html


<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
<!--作者:hnxxbl.cn-->
打開瀏覽器后,把瀏覽器地址頁面"HTMLPage1.html"換成index.html 打開試試 
</body>
</html>


第三步,在步驟二里提到的ProMapping項(xiàng)目中,Pub目錄下,新建一個(gè)Pub/Web.config文件,按如下完成配置(具體參數(shù)可自行修改)

以下配置相當(dāng)于映射了一個(gè)index.html的地址,去訪問ProHttpHandler項(xiàng)目中的Pub/Index.cs類文件

<?xml version="1.0"?>
<configuration>
  <!--IIS經(jīng)典模式下使用作者:hnxxbl.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>


第四步,完成以上三步設(shè)置后,即可運(yùn)行ProMapping即Web項(xiàng)目下剛剛新建的Pub/xxxxxx.html文件

運(yùn)行到這里只是啟動(dòng)了項(xiàng)目,可以試試在Config中設(shè)置的那個(gè)index.html,瀏覽器地址欄的地址直接改成index.html試試看



頁面輸出的Hello, World 處理程序映射,即是那個(gè)Index.cs文件中輸出的內(nèi)容。是不是很簡(jiǎn)單,接口項(xiàng)目建議使用此虛擬化路徑。


如有不明白的可下載此附件源碼仔細(xì)研究。


處理程序映射項(xiàng)目-訪問地址虛擬化Demo源碼下載


原文鏈接:.Net中處理程序映射-訪問路徑虛擬化