金色的骷髅 发表于 2015-1-16 22:05:43

ASP教程之ASP避免Session丧失的办法

使用cdonts,可以发送、查看邮件,实现webmail的功能。结合wsh,可以实现对nt主机的管理,如nt用户管理、iis虚拟主机设置、exchange邮箱设置等等,就像管理本地机一样方便。大概良多ASP开辟者城市碰到如许的情形:在会话时代(session)无端丧失session。换而言之,丧失了SessionID,一样session级的变量也会丧失。良多session丧失的缘故原由是由于毛病的程序大概是毛病的假造目次布局。

  SessionID的改动有上面几个缘故原由。

  缘故原由一:

  Netscape的扫瞄器会以为"/App/user.asp"跟"/app/user.asp"是两个分歧的程序。它会主动地入手下手一个新的会话期(newsession)。以是,才你的网站上必定要一致字母的巨细写。

  缘故原由二:

  别的一个是缘故原由是Session.Timeout的值。

  Timeout这个属性是用来设置Session的超不时间的,一分钟为单元。假设一个用户,在一个Timeout的工夫内没有革新大概哀求页面,那末会话就会停止(thesessionends)。当你再次哀求页面的时分,一个新的会话有会入手下手。

  确信Timeout的值,是分钟的。

  格局:Session.Timeout[=nMinutes]

  缘故原由三:

  假设用户把他们的扫瞄器的cookie关了,固然session就不克不及坚持。由于session的坚持是要靠cookie的。

  要坚持Session的形态,扫瞄器就必需撑持cookie,并且在翻开的形态。你固然能够用其他的办法

  缘故原由四:

  常犯的毛病就是,创建了毛病的目次布局。像上面的目次布局:

  root放了global.asa

  virtual_root没有global.asa

  another_virtual_root没有global.asa

  挪用两个virtualroots的页面,就会实行不异的global.asa(root上的谁人)

  别的的一个目次布局:

  root没有global.asa

  virtual放了global.asa

  another_virtual_root别的一个global.asa

  每个分歧目次下的global.asa城市各自实行,固然实行的代码就分歧了。不外假如内里的代码一样,就令当别说。:)

  以是你在哀求分歧目次下页面,将会招致分歧的global.asa被实行。分歧的变量被挪用,分歧的sessionid被创建....之前的有效的信息都被损坏了。

  上面是具体的注释:

  当你先扫瞄子假造程序上的页面(childvirtualapplication),然后再往扫瞄子假造程序的上一级的父假造程序(parentvirtualroot)的页面。那些变量就会丧失、损坏。看上面的表格:

  哀求子程序1丧失子程序2丧失

  先哀求Root不会不会

  只在子程序1之前哀求Root不会会

  只在子程序2之前哀求Root会不会

  最初哀求Root会会

  有一个注册表的键值(registryentry),叫CheckForNestedVroots(缺省为1)。是设ASP是不是往检测其他目次里的global.asa文件。

  假设一个页面被哀求,可是假如在这个被哀求页面的统一目次里没有global.asa这文件,那末asp就会往下级的目次里找。ASP计划就是如许的。另外一方面,假设application被哀求的页面是在root的话,而global.asa也在root,那末ASP就会实行这个在root上的global.asa文件。没有需要往找子目次下的global.asa文件了。

  Internet服务办理器,能够把一个目次设成假造的目次,如许的目次是能够具有本人的global.asa文件,固然Application_OnStart和Session_OnStart是少不了的(空话)。

  这是个例子。他们都有Global.asa

  C:InetPubwwwroot<Home>

  Global.asa

  C:InetPubwwwrootTest2(Nested)

  Global.asa

  C:InetPubwwwrootTest2Test3(Nested)

  Global.asa

  C:InetPubwwwrootTest4

  Global.asa

  注重:

  假如Global.asa文件web哀求时是请求认证的话,那末在Global.asa文件的Session_onStart历程里初始化的变量将会是空的。假如你的global.asa的权限真的是如许设的话,那末将会带来良多的贫苦。比方你会晤到如许的毛病信息:

  MicrosoftOLEDBProviderforODBCDriverserror80004005Datasourcenamenotfoundandnodefaultdriverspecified/<webname>/<aspfilename>.asp,linexx

  这就是由于Session_onStart内里初始化的session变量是空的(基本就没有初始化)。

  别的:这个成绩在win95上不存在。更正确的是说,像在FAT如许的,没有文件权限设置的文件体系里,没有如许的成绩。以是NT的NTFS是有如许成绩的但,win95,98的就没有。

  以是,你必需为Global.asa文件设置Internet匿名读取的权限,如许才包管成绩不会产生。

缺乏可以共同遵循的行业标准,ASP还处在发展初期,大家对它的理解不同,如产品和服务标准,收费标准等,不利于行业的健康发展。

乐观 发表于 2015-1-18 16:44:12

Server:这个表示的服务器,操作服务器的一些东西使用这个,如Server.Mappath转换服务器路径,Server.CreateObject实例化一个组件

愤怒的大鸟 发表于 2015-1-22 15:19:14

另外因为asp需要使用组件,所以了解一点组件的知识(ADODB也是组件)

飘灵儿 发表于 2015-1-31 08:08:30

封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高。

金色的骷髅 发表于 2015-2-6 18:46:08

接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。

变相怪杰 发表于 2015-2-18 06:16:51

以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。

只想知道 发表于 2015-3-6 01:10:28

兴趣爱好,那么你无须学编程,申请一个域名和空间,在网上下载一些免费开源的CMS系统,你不用改代码,只须熟悉它们的后台操作,像office一样简单方便,很快就能建一个站点,很多站长都是这样做的

精灵巫婆 发表于 2015-3-12 18:16:59

弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。

冷月葬花魂 发表于 2015-3-20 01:24:09

完全不知道到底自己学的是什么。最后,除了教程里面说的几个例子,还是什么都不会。
页: [1]
查看完整版本: ASP教程之ASP避免Session丧失的办法