日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

HttpContext HttpRuntime

發布時間:2025/3/15 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HttpContext HttpRuntime 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

問題引出

HttpContext.Current.Cache .VS. HttpRuntime.Cache

  • HttpRuntime.Cache:獲取當前應用程序的Cache
  • HttpContext.Current.Cache:為當前HTTP請求獲取Cache對象,跨線程可用,在APM模式或創建了子線程的場景中不能用

HttpContext.Current.Cache 調用 HttpRuntime.Cache實現,兩者指向同一 Cache對象:

  • HttpRuntime.Cache相當于是緩存具體實現類,非Web應用下也可以使用
  • HttpContext.Current.Cache是對緩存類的封裝,局限HttpContext只能用于Web應用

在某些情況下,HttpContext還沒被創建出來為null,就只能用 HttpRuntime.Cache。

  • 定時器的回調。
  • Cache的移除通知。
  • APM模式下異步完成回調。
  • 主動創建線程或者將任務交給線程池來執行

建議使用 HttpRuntime.Cache,既能減少出錯,也減少一次函數調用。

eg:在獲取程序\站點的根目錄時盡量使用 System.Web.HttpRuntime.AppDomainAppPath。

其中,關于 APM模式 參見:https://www.cnblogs.com/mcgrady/p/5660314.html

HttpContext

限制:同一Http請求

Server.Transfer .VS. Response.Redirect

Server.Transfer 請求跳轉頁面,歸屬同一個http請求,URL無變化,所有操作均在服務器完成;Response.Redirect 則是重新發起新的頁面請求,需要瀏覽器和服務器交互。

具體參見:HttpContext 初識;

HttpContext.Current 由其維護

System.Runtime.Remoting.Messaging.CallContext.HostContext as HttpContext

其中,CallContext.HostContext 表示:獲取或設置與當前線程相關聯的主機上下文 。

  • HttpContext.Current? 并非無處不在
  • 我所知道的HttpContext.Current:推薦

APM模式下的異步完成回調,訪問HttpContext.Current方法:推薦第2種方法

  • 在類型中添加一個字段來保存HttpContext的引用(異步開始前)
  • 將HttpContext賦值給BeginXXX方法的最后一個參數(object state)

HttpRuntime

使用時建議自行封裝,可參見:ASP.Net HttpRuntime.Cache 使用總結;

獲取或設置與當前線程相關聯的主機上下文

轉載于:https://www.cnblogs.com/wjcx-sqh/p/11093956.html

總結

以上是生活随笔為你收集整理的HttpContext HttpRuntime的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。