国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

ASP.NET 在 Windows Azure 環(huán)境中使用基于 SQLServer 的 Session

2019-11-17 01:35:01
字體:
供稿:網(wǎng)友
asp.net 在 Windows Azure 環(huán)境中使用基于 SQLServer 的 session

Session 嘛,占一點兒服務(wù)器資源,但是總歸比 ViewState 和 Cookie 安全點兒,所以還是要用的。

Windows Azure 環(huán)境中的 Web 服務(wù)器經(jīng)由負(fù)載均衡調(diào)度,根本無法保證下一次處理請求的還是不是上一次的那臺服務(wù)器,所以,直接使用內(nèi)存的 In-PRocess Session 就不能用了。

Session

那么怎么辦呢?

備選方案

ASP.NET State Service

專門用一臺服務(wù)器來管理 Session。這個方案 On-Premis 方案里面可以用,Azure 的環(huán)境中還沒有任何可用的跡象,跳過。

Table Storage

直接用 Azure 里面的存儲服務(wù)來給你保存 Session。存儲服務(wù)好便宜,最高級的“讀取訪問地域冗余存儲 (RA-GRS)”對表和隊列的報價是 $0.12 1T/月。但是,問題就是慢。所以,跳過。

Azure Caching

內(nèi)存的緩存服務(wù),速度最快、也最貴。最大的問題是,中國的 Azure 目前還不支持(但云服務(wù)提供 In Role Caching)。無奈跳過。

SQL Azure

速度介于 Table Storage 和 Azure Caching 之間,木有官方支持,但是可用。無奈咬牙就用這個了。

操作步驟

其實挺簡單的,分三個步驟:

  1. 建立一個 SQL Azure 數(shù)據(jù)庫
  2. 在這個新的空數(shù)據(jù)庫上面跑一個腳本,把所需的表和存儲過程都建立起來
  3. 配置 ASP.NET Web 應(yīng)用的 Web.Config 文件

首先,登錄 Windows Azure 控制臺,創(chuàng)建一個空的數(shù)據(jù)庫。這里給它起名 ASPState。如果你檢索過英文資料,那么你發(fā)現(xiàn)有人(文章)會讓你運行一段 SQL 腳本創(chuàng)建這個數(shù)據(jù)庫。從應(yīng)用的角度看,效果是一樣的,但是,這個腳本創(chuàng)建的數(shù)據(jù)庫,是不會出現(xiàn)在 Azure 控制臺的數(shù)據(jù)庫列表里面的。所以,還是應(yīng)該直接在 Azure 控制臺里面建立這個數(shù)據(jù)庫。

Database

然后,下載本文末尾提供的文件鏈接,解壓后得到 SQL 文件,用 SQL Server Management Studio 打開 Azure 數(shù)據(jù)庫 ASPState 后,運行此腳本即可完成第二步。這個腳本不是我寫的,是從 這個地址 下載的。但是原始的下載包是包含創(chuàng)建數(shù)據(jù)庫腳本的,基于上面的原因,我給去掉了,以免引起混亂;同時,也起到異地備份的作用。

打開 ASPState 數(shù)據(jù)庫以及配置 Web.Config 需要連接字符串的參數(shù),可以在 Azure 的數(shù)據(jù)庫面板上面找到,點擊“查看 ADO .NET …. 連接字符串”就是:

Panel

用 SQL Server Management Studio 連接 Azure 數(shù)據(jù)庫的過程中,你可能會收到一個“ip 地址被防火墻攔截”的錯誤消息。沒關(guān)系,切換到 Azure 控制臺的數(shù)據(jù)庫管理界面,打開上面的連接字符串對話框,你會看到 Azure 會提示你是否需要允許這個 IP 地址訪問數(shù)據(jù)庫,只需要點擊提示,將 IP 地址加入允許的訪問列表中保存即可。

最后,在你的 Web.Config 的 System.Web 節(jié)中添加下面的內(nèi)容即可(用 % 引用的內(nèi)容需要按照你的實際情況替換):

Web.Config

好了,下面就可以開始用 Session 了。

附件:下載 配置 ASPState 數(shù)據(jù)庫的腳本文件 (zip 格式)。

特別說明:SQLServer 的 Session 需要手動調(diào)用 DeleteExpiredSessions 存儲過程(如果你運行上面的 SQL 腳本,這個存儲過程是會給你創(chuàng)建好的),因為 SQL Azure 不提供 Agent 服務(wù),所以要手動調(diào)用或者用 Azure 提供的“計劃調(diào)用”服務(wù)等手段。這個調(diào)用的時機(jī)見仁見智,要結(jié)合自己應(yīng)用的實際來安排,這篇短文中就不展開講太多了。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 界首市| 松桃| 潢川县| 雷山县| 瑞安市| 枝江市| 自治县| 延庆县| 长治县| 房山区| 石家庄市| 克拉玛依市| 泗水县| 青海省| 铁岭县| 安徽省| 唐海县| 方城县| 瑞金市| 屯留县| 二连浩特市| 达日县| 滦平县| 若羌县| 大港区| 安吉县| 洛浦县| 札达县| 珲春市| 新民市| 尼木县| 渑池县| 辽宁省| 南澳县| 美姑县| 安康市| 富顺县| 西乌| 锡林郭勒盟| 常熟市| 黔江区|