濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > 實(shí)現(xiàn)Asp與Asp.Net共享Session的方法

實(shí)現(xiàn)Asp與Asp.Net共享Session的方法

熱門(mén)標(biāo)簽:百度地圖怎樣做地圖標(biāo)注 浦發(fā)電話(huà)機(jī)器人提醒還款 征途美甲店地圖標(biāo)注 騰訊地圖標(biāo)注手機(jī) 太原400電話(huà)上門(mén)辦理 柳州電銷(xiāo)機(jī)器人公司 400電話(huà)如何申請(qǐng)取消 電銷(xiāo)語(yǔ)音機(jī)器人型號(hào)參數(shù) 昆明語(yǔ)音電銷(xiāo)機(jī)器人價(jià)格
iframe align="top" marginwidth="0" marginheight="0" src="http://www.zealware.com/46860.html" frameborder="0" width="468" scrolling="no" height="60">/iframe>

在.net中,Session的存儲(chǔ)機(jī)制已經(jīng)與Asp的存儲(chǔ)機(jī)制不一樣,雖然可以在同一個(gè)IIS下同時(shí)運(yùn)行asp與aspx,但是它們之間不能傳遞Session。
之前大批系統(tǒng)應(yīng)用到了asp,在升級(jí)過(guò)程中,如果完全拋棄asp來(lái)重寫(xiě),一來(lái)工作量太大,二來(lái)以前的成果不能保存下來(lái)。
所以微軟提出了一個(gè)Session共享的解決方案,只是此文檔光說(shuō)明原理,并沒(méi)有說(shuō)具體的操作步驟,由此,我撰文描述過(guò)程。

簡(jiǎn)單說(shuō)明原理,asp與asp.net之間的Session統(tǒng)一存儲(chǔ)在數(shù)據(jù)庫(kù)中來(lái)實(shí)現(xiàn)共享

1、創(chuàng)建數(shù)據(jù)表
打開(kāi)SQL Server查詢(xún)分析器,運(yùn)行以下腳本來(lái)創(chuàng)建數(shù)據(jù)表,數(shù)據(jù)表名為SessionState

if exists (select * from sysobjects where id = object_id(N'[dbo].[SessionState]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) 
drop table [dbo].[SessionState] 
GO 

create TABLE [dbo].[SessionState] ( 
[ID] uniqueidentifier NOT NULL , 
[Data] [image] NOT NULL , 
[Last_Accessed] [datetime] NOT NULL 
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] 
GO 

alter TABLE [dbo].[SessionState] WITH NOCHECK ADD 
CONSTRAINT [PK_SessionState] PRIMARY KEY NONCLUSTERED 
( 
[ID] 
) ON [PRIMARY] 
GO

2、下載以下文件 Session.rar

將文件解壓后,將產(chǎn)生4個(gè)文件,分別作如下操作。
復(fù)制 global.asa 到系統(tǒng)根目錄下,并打開(kāi)文件,修改Application("SessionDSN") 為合適的數(shù)據(jù)庫(kù)鏈接字符串,如果系統(tǒng)本身已經(jīng)有了global.asa,則在此文件中添加如下Application:
Application("SessionDSN") = "initial catalog=SqlServerName;persist security info=False;user id=sa;password=****;packet size=4096"
在系統(tǒng)的 Web.config 文件中,添加此項(xiàng)
add key="SessionDSN" value="data source=SqlServerName;initial catalog=SessionDemoDb;persist security info=False;user id=SessionDemoDbUser;password=****;packet size=4096">/add>
并將其值修改為合適的數(shù)據(jù)庫(kù)鏈接。
將另外兩個(gè)dll文件復(fù)制到系統(tǒng)目錄下(或其他合適目錄)

3、關(guān)閉IIS中Asp的Session選項(xiàng)
打開(kāi)IIS,選擇站點(diǎn),依次選擇屬性 -> 主目錄 -> 配置 -> 應(yīng)用程序選項(xiàng),將啟用會(huì)話(huà)狀況前的復(fù)選勾去除。如下圖:
screen.width-350)this.width=screen.width-350" border=0>

4、安裝SessionUtility.dll
首先找到 gacutil.exe 文件,一般情況下在 Microsoft Visual Studio .NET 2003\SDK\v1.1\Bin 目錄下
在命令提示符窗口中,執(zhí)行 gacutil /i SessionUtility.dll,(如果執(zhí)行失敗,請(qǐng)將這兩個(gè)文件的路徑都寫(xiě)全了)

5、注冊(cè)SessionUtility.dll為Com對(duì)象
同樣,要找到 regasm.exe 文件,一般情況下在 WINNT\Microsoft.NET\Framework\v1.1.4322 目錄下
在命令提示符窗口中,執(zhí)行 regasm.exe SessionUtility.dll /tlb:SessionUtility.tlb,(如果執(zhí)行失敗,請(qǐng)將這兩個(gè)文件的路徑都寫(xiě)全了)
這樣就會(huì)產(chǎn)生出一個(gè)tlb文件,可當(dāng)做普通的Com組件來(lái)調(diào)用。

6、注冊(cè)SessionManager.dll
這個(gè)很簡(jiǎn)單了,在命令提示符窗口中,執(zhí)行regsvr32 SessionManager.dll

7、如果是NTFS格式的系統(tǒng),請(qǐng)找到 SessionMgr.dll,右鍵點(diǎn)擊,屬性,將IUSR_machine_name>權(quán)限設(shè)置為可讀和可執(zhí)行。 至此,我們已經(jīng)可以實(shí)現(xiàn)了Asp與Asp.net之間Session共享了,那么怎么去用 在Asp中,我們要如下使用: br>頁(yè)面開(kāi)始端 br>Dim Session br>Set Session = Server.createObject("SessionMgr.Session2") br>Session("UserID") = ... br>... br>... br>... br>頁(yè)面結(jié)束端 br>Set Session = Nothing '記得一定要釋放哦 而在Asp.net中,我們要如下使用: br>首先,我們要添加對(duì)SessionUtility的引用 br>然后,編碼時(shí),原來(lái)是這樣的繼承 public class WebForm1 : System.Web.UI.Page,修改為public class WebForm1 : MSDN.SessionPage br>這樣在編碼過(guò)程中就可以使用Session("UserID")這樣的形式了。 注意:雖然Session實(shí)現(xiàn)了共享,但是Session的使用語(yǔ)法,相對(duì)于.net中新增的部分,就沒(méi)有實(shí)現(xiàn),畢竟要照顧asp br>譬如Session.Remove,就不能用了。p id="TBPingURL">Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1621435/p> br>/machine_name>

您可能感興趣的文章:
  • ASP.NET 程序中刪除文件夾導(dǎo)致session失效問(wèn)題的解決辦法分享
  • asp.net 刪除項(xiàng)目文件/文件夾IIS重啟,Session丟失問(wèn)題
  • asp.net基于session實(shí)現(xiàn)購(gòu)物車(chē)的方法
  • ASP.NET 使用application與session對(duì)象寫(xiě)的簡(jiǎn)單聊天室程序
  • ASP.NET ASHX中獲得Session的方法
  • ASP.NET中在一般處理程序中使用session的簡(jiǎn)單介紹
  • Asp.Net程序目錄下文件夾或文件操作導(dǎo)致Session失效的解決方案

標(biāo)簽:新疆 陽(yáng)泉 德陽(yáng) 江蘇 蘭州 天門(mén) 張家界 白山

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《實(shí)現(xiàn)Asp與Asp.Net共享Session的方法》,本文關(guān)鍵詞  實(shí)現(xiàn),Asp,與,Asp.Net,共享,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《實(shí)現(xiàn)Asp與Asp.Net共享Session的方法》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于實(shí)現(xiàn)Asp與Asp.Net共享Session的方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    日喀则市| 黄山市| 河津市| 延川县| 开远市| 邹平县| 武强县| 布拖县| 绥芬河市| 长宁县| 怀远县| 陆丰市| 承德市| 泰安市| 迭部县| 芦溪县| 西平县| 阆中市| 西盟| 杭锦旗| 封丘县| 涡阳县| 浦江县| 阳东县| 大渡口区| 马关县| 县级市| 永宁县| 江川县| 德化县| 新疆| 东丽区| 巫溪县| 体育| 资中县| 邮箱| 永春县| 安岳县| 三原县| 昌宁县| 宁陕县|