.Net中處理程序映射-訪問路徑虛擬化,不知道從哪里翻出來了這個好多年前的DEMO,意思就是將Index.cs虛擬化成一個可訪問到的html頁面
特別是在接口開發(fā)設計中,可以從一定程度上隱藏頁面的真實路徑,實際上在.Net中,一個.cs后綴的文件屬于一個類文件,不能直接用于外部訪問,
如果非要直接訪問某個.cs類文件的話,只能通過處理映射關系來處理了,相當于給此文件起一個可供直接訪問的別名。
第一步:添加一個類庫項目ProHttpHandler,在此項目下創(chuàng)建一個Pub/Index.cs類文件
using System; using System.Web; namespace ProHttpHandler.Pub { /// <summary> /// 處理程序映射 /// 作者:www.7787pk.com /// </summary> public class Index : IHttpHandler { /// <summary> /// 您將需要在您網站的 web.config 文件中配置此處理程序, /// 并向 IIS 注冊此處理程序,然后才能進行使用。有關詳細信息, /// 請參見下面的鏈接: http://go.microsoft.com/?linkid=8101007 /// </summary> #region IHttpHandler Members public bool IsReusable { // 如果無法為其他請求重用托管處理程序,則返回 false。 // 如果按請求保留某些狀態(tài)信息,則通常這將為 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.7787pk.com--> 打開瀏覽器后,把瀏覽器地址頁面"HTMLPage1.html"換成index.html 打開試試 </body> </html>
第三步,在步驟二里提到的ProMapping項目中,Pub目錄下,新建一個Pub/Web.config文件,按如下完成配置(具體參數可自行修改)
以下配置相當于映射了一個index.html的地址,去訪問ProHttpHandler項目中的Pub/Index.cs類文件
<?xml version="1.0"?> <configuration> <!--IIS經典模式下使用作者:www.7787pk.com--> <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文件中輸出的內容。是不是很簡單,接口項目建議使用此虛擬化路徑。
如有不明白的可下載此附件源碼仔細研究。
原文鏈接:.Net中處理程序映射-訪問路徑虛擬化