一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

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

<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的存儲機(jī)制已經(jīng)與ASP存儲機(jī)制不一樣,雖然可以在同一個IIS下同時運行ASPASPx,但是它們之間不能傳遞Session。
之前大批系統(tǒng)應(yīng)用到了ASP,在升級過程中,如果完全拋棄ASP來重寫,一來工作量太大,二來以前的成果不能保存下來。
所以微軟提出了一個Session共享的解決方案,只是此文檔光說明原理,并沒有說具體的操作步驟,由此,我撰文描述過程。

簡單說明原理,ASPASP.NET之間的Session統(tǒng)一存儲在數(shù)據(jù)庫中來實現(xiàn)共享

1、創(chuàng)建數(shù)據(jù)表
打開SQL Server查詢分析器,運行以下腳本來創(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個文件,分別作如下操作。
復(fù)制 global.asa 到系統(tǒng)根目錄下,并打開文件,修改Application("SessionDSN") 為合適的數(shù)據(jù)庫鏈接字符串,如果系統(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 文件中,添加此項
<add key="SessionDSN" value="data source=SqlServerName;initial catalog=SessionDemoDb;persist security info=False;user id=SessionDemoDbUser;password=****;packet size=4096"></add>
并將其值修改為合適的數(shù)據(jù)庫鏈接。
將另外兩個dll文件復(fù)制到系統(tǒng)目錄下(或其他合適目錄)

3、關(guān)閉IIS中ASP的Session選項
打開IIS,選擇站點,依次選擇屬性 -> 主目錄 -> 配置 -> 應(yīng)用程序選項,將啟用會話狀況前的復(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í)行失敗,請將這兩個文件的路徑都寫全了)

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

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

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

AspNet技術(shù)實現(xiàn)Asp與Asp.Net共享Session的方法,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 精品一区二区91 | 国产精品亚洲欧美日韩久久 | 精品一区二区三区四区五区六区 | 国产91视频网 | 亚洲综合图片人成综合网 | 起碰成人免费公开网视频 | 特黄视频免费看 | 国产午夜视频在线观看第四页 | 国产一区二区不卡 | 国产拍拍视频一二三四区 | 亚洲欧美日韩精品香蕉 | 天天色天天干天天射 | 精品国产制服丝袜高跟 | 麻豆视频国产 | www.亚洲视频.com | 成人亚洲视频在线观看 | 国产91一区二这在线播放 | 欧美在线观看免费一区视频 | 国产精品亚洲一区二区三区 | 国产特黄一级一片免费 | 国产精品李雅在线观看 | 午夜dj观看在线影院 | 久久99国产精品免费观看 | 成人午夜在线观看国产 | 亚洲免费视频一区二区三区 | 亚洲香蕉视频 | 国产91在线九色 | 亚洲五月激情综合图片区 | 国产在视频线精品视频www666 | 亚洲图片欧美激情 | 国产区图片区小说区亚洲区 | 狂野欧美性猛交xxxx免费 | 999国内精品永久免费视频 | 久久精品国产乱子伦多人 | 啪一啪在线视频 | 国产亚洲精品拍拍拍拍拍 | 婷婷亚洲综合 | 国产精品福利无圣光一区二区 | 国产精品麻豆久久99 | 国产成人黄色 | 国产精品欧美亚洲韩国日本 |