91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ASP.NET頁面的aspx擴展方法是什么

發布時間:2021-12-06 15:45:57 來源:億速云 閱讀:111 作者:iii 欄目:編程語言

這篇文章主要講解了“ASP.NET頁面的aspx擴展方法是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“ASP.NET頁面的aspx擴展方法是什么”吧!

需求:某網站因業務擴展,需拆分出另一個站點,新舊站點具有相同的內容,但具體欄目表現形式上不一樣。原網站運行多年,有大量的圖片,這些圖片也會在新站上使用。任務是:

保證兩個網站圖片內容同步,即原來的站點增加一個圖片,新站點即可使用這個圖片。

分析:假設兩個站點的域名分別為:http://www.a_image.com/和http://www.b_image.com/

1、 將圖片分別拷到兩臺服務器,以后上傳圖片同時上傳兩臺服務器。這種方法雖簡單,但是占用巨大的磁盤空間,而且維護麻煩。

2、 在http://www.b_image.com/的頁面上直接寫https://cache.yisu.com/upload/information/20210521/332/489802.jpg資源請求的處理句柄:

<httphandlers>  <add verb=”*” path=”*.jpg” type=”HandlerTest”/>  </httphandlers>

Verb列表可以是逗號分隔的HTTP謂詞列表(例如“GET,PUT,POST”),也可以是通配符“*”;path路徑屬性可以包含單個URL路徑或簡單的通配符字符串(例如*.aspx);type指定逗號分隔的類/程序集組合。ASP.NET首先在應用程序的專用\bin目錄中搜索程序集DLL,然后在系統程序集緩存中搜索程序集DLL。
從代碼層面來看,要實現自定義的HTTP處理句柄,只需要實現一個IhttpHandler接口,其中包括IsReusable和ProcessRequest兩個方法。IsReusable方法用于返回應用程序池中是否存在可重用的類實體的信息,利用這個方法可以同時為多個請求服務,而ProcessRequest方法則接受一個HttpContext實體作為參數,從而得到對Request和Response的存取權限。

處理思路:當對www.b_image.com/images/book.jpg的請求到達IIS時,ASP.NET初始化一個圖像生成器類,在這個類中,通過HTTP端口把www.a_image.com/images/book.jpg取回來,再將圖像流返回到HTTP響應中。接收并處理HTTP請求是在ProcessRequest方法中完成的。客戶端并不知道實際發生了什么事情。

代碼:

using System;  using System.Net;  using System.IO;  using System.Web;  using System.Drawing;  using System.Drawing.Imaging;   namespace WebHttpModule  {      public class ImageLink : IHttpHandler      {          public void ProcessRequest(HttpContext context)          {              string url = context.Request.Url.ToString();              //if request is http://www.b_image.com/, then changed to request http://www.a_image.com/              urlurl = url.Replace("http://www.b_image.com/", "http://www.a_image.com/");               //如果使用的相對路徑,就要手工加入完整的url路徑              if (url.IndexOf("http://www.a_image.com/") <= 0)              {                  url = "http://www.a_image.com/" + url;              }               //create one WebClient object, used to request the image of http://www.a_image.com/              WebClient client = new WebClient();              Stream stream = client.OpenRead(url);               Image image = Image.FromStream(stream);              context.Response.ContentType = "image/jpeg";              //將圖像寫入HTTP響應,返回給客戶端請求              image.Save(context.Response.OutputStream, ImageFormat.Jpeg);               image.Dispose();          }           public bool IsReusable          {              get              {                  return true;              }          }      }  }

配置:

1、 將上面的代碼編譯為ImageLink.dll,在b服務器建立和a機器相同路徑的圖片目錄images,并在其下建立bin目錄,將ImageLink.dll拷進去,在b服務器中吧images目錄設定為一個應用程序,這樣才能針對此應用程序設定相應的程序映射(添加相應的擴展),以把jpg后綴的請求發送到ASP.NET去處理。

2、 在Web.Config中配置代碼來設定httpHandlers,我們現在要做的把對images目錄下的jpg文件的請求轉到ImageLink來處理,因此最終的設定如下:

<httphandlers> <add verb=”*” path=”images/*.jpg” type=” WebHttpModule.ImageLink, ImageLink”/> </httphandlers>

將web.config拷到images目錄下。

到此大工就告成了!所有對b服務器請求的jpg圖片都會從a機器取到,在客戶端卻看不出來。

感謝各位的閱讀,以上就是“ASP.NET頁面的aspx擴展方法是什么”的內容了,經過本文的學習后,相信大家對ASP.NET頁面的aspx擴展方法是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

弋阳县| 胶南市| 常山县| 宁安市| 江口县| 鸡泽县| 梨树县| 嘉定区| 长岭县| 湛江市| 淮滨县| 渑池县| 赞皇县| 桐梓县| 双城市| 潞西市| 江山市| 乐东| 顺昌县| 新平| 桦南县| 皋兰县| 太湖县| 邹城市| 浪卡子县| 杭锦后旗| 靖安县| 许昌县| 蓬莱市| 毕节市| 壤塘县| 荔波县| 惠水县| 襄城县| 扶余县| 西乌珠穆沁旗| 天全县| 罗源县| 定州市| 绥江县| 孟津县|