All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
获取SQL Server元数据的几种方法_[SQL Server教程]
制作网站前看看这些好的网页技术规范_[Html教程]
ASP.NET2.0中Gridview的使用技巧_[Asp.Net教程]
HTML 初学者指南(8)_[Html教程]
C#中的多媒体技术:文字处理
实例:AJAX编写用户注册实例及技术小结_.net资料_编程技术
asp.net2.0网站语法之HTML服务器控件语法
如何在SQL,Server,2005,中存储立方米_mssql学习_编程技术
Linux系统下Apache与Tomcat整合的简单方法_php资料_编程技术
如何删除SQL Server日志?_[SQL Server教程]
Reading number is top 10 pictures
The money of more than 100 countries and regions2
Take you to walk into the most true north Korea rural4
The little woman's bright wire3
Thrilling English baby
南昌铁路局攸县车站125户铁路职工微利房终成骗局
The real super beauty11
谁认识这位校花
Sell the barbecue as says father du breul2
So beauty, will let you spray blood4
西游四格漫画(二)
Download software ranking
Unix video tutorial15
XML+Web+Service开发教程
星际争霸1.08硬盘免安装版
The king of fighters 97(Mobile phone games-apk)
仙剑奇侠传98硬盘WINXP版
仙剑奇侠传98版歌曲
Unix video tutorial7
Boxer's Top ten classic battle2
VC++6.0培训教程
Unix video tutorial12
aaa published in(发表于) 2013/12/17 7:47:19 Edit(编辑)
如何实现Asp与Asp.Net共享Session_.net资料_编程技术

如何实现Asp与Asp.Net共享Session_.net资料_编程技术

如何实现Asp与Asp.Net共享Session_.net资料_编程技术-你的首页-uuhomepage.com

在.net中,Session的存储机制已经与Asp的存储机制不一样,虽然可以在同一个IIS下同时运行asp与aspx,但是它们之间不能传递Session。
之前大批系统应用到了asp,在升级过程中,如果完全抛弃asp来重写,一来工作量太大,二来以前的成果不能保存下来。
所以微软提出了一个Session共享的解决方案,只是此文档光说明原理,并没有说具体的操作步骤,由此,我撰文描述过程。


简单说明原理,asp与asp.net之间的Session统一存储在数据库中来实现共享


1、创建数据表
打开SQL Server查询分析器,运行以下脚本来创建数据表,数据表名为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


将文件解压后,将产生4个文件,分别作如下操作。
复制 global.asa 到系统根目录下,并打开文件,修改Application("SessionDSN") 为合适的数据库链接字符串,如果系统本身已经有了global.asa,则在此文件中添加如下Application:
Application("SessionDSN") = "initial catalog=SqlServerName;persist security info=False;user id=sa;password=****;packet size=4096"
在系统的 Web.config 文件中,添加此项

并将其值修改为合适的数据库链接。
将另外两个dll文件复制到系统目录下(或其他合适目录)


3、关闭IIS中Asp的Session选项
打开IIS,选择站点,依次选择属性 -> 主目录 -> 配置 -> 应用程序选项,将启用会话状况前的复选勾去除。如下图:
screen.width-350)this.width=screen.width-350" border=0>


4、安装SessionUtility.dll
首先找到 gacutil.exe 文件,一般情况下在 Microsoft Visual Studio .NET 2003\SDK\v1.1\Bin 目录下
在命令提示符窗口中,执行 gacutil /i SessionUtility.dll,(如果执行失败,请将这两个文件的路径都写全了)


5、注册SessionUtility.dll为Com对象
同样,要找到 regasm.exe 文件,一般情况下在 WINNT\Microsoft.NET\Framework\v1.1.4322 目录下
在命令提示符窗口中,执行 regasm.exe SessionUtility.dll /tlb:SessionUtility.tlb,(如果执行失败,请将这两个文件的路径都写全了)
这样就会产生出一个tlb文件,可当做普通的Com组件来调用。


6、注册SessionManager.dll
这个很简单了,在命令提示符窗口中,执行regsvr32 SessionManager.dll


7、如果是NTFS格式的系统,请找到 SessionMgr.dll,右键点击,属性,将IUSR_权限设置为可读和可执行。


至此,我们已经可以实现了Asp与Asp.net之间Session共享了,那么怎么去用


在Asp中,我们要如下使用:
页面开始端
Dim Session
Set Session = Server.createObject("SessionMgr.Session2")
Session("UserID") = ...
...
...
...
页面结束端
Set Session = Nothing '记得一定要释放哦


而在Asp.net中,我们要如下使用:
首先,我们要添加对SessionUtility的引用
然后,编码时,原来是这样的继承 public class WebForm1 : System.Web.UI.Page,修改为public class WebForm1 : MSDN.SessionPage
这样在编码过程中就可以使用Session("UserID")这样的形式了。


注意:虽然Session实现了共享,但是Session的使用语法,相对于.net中新增的部分,就没有实现,毕竟要照顾asp
譬如Session.Remove,就不能用了。





添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.