小魔女 发表于 2015-1-16 14:23:48

来一篇关于NET的ASP.NET Session形成哀求堵塞征象

你可以先看看这篇文章(软微学院生涯-三朝元老经验谈),打不开再跟我说。(我的意思是想让她自己先稍微了解一下到底现在各个方向学的工具以及以后要做的工具大概是什么,因为喜欢做什么样的事其实自己最清楚的)征象:在一个网站中,当会见一个处置对照耗时的页面(A页面),页面哀求还没有前往时,此时再点击会见该网站的其他页面(B页面)会呈现B页面好久都没有呼应和前往,直到A页面输入前往数据时才入手下手处置B页面的哀求,形成哀求列队处置,A页面堵塞了B页面的哀求处置。

  入手下手我一向嫌疑是否是扫瞄器单线程的原因,在网上搜刮了材料,IE6/7,FF都是多线程扫瞄器(IE6仿佛是2个线程),用IE6、IE7、FF都试过了,了局一样,这就奇异了,明显都是多线程,怎样会堵塞呢?

  在网上搜刮了好几回相干的成绩,仍是没查出个以是然,但网站酿成的客户体验的确很差,每当会见到谁人耗时的A页面时,再想会见其他页面基本检察不了。“怎样体系那末慢”,晕,没举措,我也不懂怎样处置(不卖力任的立场啊,呵呵)。

  在一次的偶然中我发明居然在A页面Loading(页面上加的提醒)的时分,能够会见某个页面,真是欣喜,再尝尝几回,能够,的确能够,是否是页面代码堵塞了?因而查这两个页面的代码,实在这两个页面的代码就十几行,没甚么成绩呢。

  经由屡次实验和比对,才发明这两个页都是无需上岸考证的页面,之前呈现堵塞的页面都是需上岸考证后才可会见的页面,而体系的考证信息是存储在Session中,经由过程Session判别考证的。这时候想到应当是Session的成绩,但仍是不知怎样处置,再往网上搜刮,互联网上的信息真是包罗万象,终究搜刮到成绩地点:

  /************************************************************/

  问:为了能够按次会见Session的形态值,Session是不是供应了锁定机制?

  答:Session完成了Reader/Writer的锁机制:

  当页面临Session具有可写功效(即页面有<%@PageEnableSessionState="True"%>标志),此时直到哀求完成该页面的Session持有一个写锁定。

  当页面临Session具有只读功效(即页面有<%@PageEnableSessionState="ReadOnly"%>标志),此时晓得哀求完成该页面的Session持有一个读锁定。

  读锁定将堵塞一个写锁定;读锁定不会堵塞读锁定;写锁定将堵塞一切的读写锁定。这就是为何两个框架中的统一个页面都往写统一个Session时,个中一个要守候另外一个(稍快的谁人)完成后,才入手下手写。

  /************************************************************/

  “写锁定将堵塞一切的读写锁定”,也就是说页面在EnableSessionState="True"的情形下没前往输入时,一向持着Session写操纵,其他页面临Session的读操纵必需守候,而asp.net的aspx页面默许是EnableSessionState="True",每一个页面从哀求入手下手至前往一向持着Session写操纵,需考证页面必需读取Session值判别,这就是为何需考证的页面哀求被堵塞的缘故原由。只需耗时页面(A页面)没有Session的写操纵,也就不会堵塞其他页面的哀求,因而修正A页面的EnableSessionState="ReadOnly",比方:<%@PageLanguage="C#"AutoEventWireup="true"CodeFile="TBS_Monitor_List.aspx.cs"EnableSessionState="ReadOnly"Inherits="TBS_Monitor_List"%>:<%@PageLanguage="C#"AutoEventWireup="true"CodeFile="TBS_Monitor_List.aspx.cs"EnableSessionState="ReadOnly"Inherits="TBS_Monitor_List"%>,成绩办理。2003年中微软发布最新版本的ASP.netWebMatrix,对于我们喜欢用Asp.net来编程的朋友实在是个好消息,我也实实在在的将Asp.net更深入的研究了一下,以方便我以后更好的运用它,同时我也讲讲使用它的感受。

活着的死人 发表于 2015-1-18 13:47:48

ASP.NET:ASP.net是Microsoft.net的一部分,作为战略产品,不仅仅是ActiveServerPage(ASP)的下一个版本;它还提供了一个统一的Web开发模型,其中包括开发人员生成企业级Web应用程序所需的各种服务。ASP.NET的语法在很大程度上与ASP兼容,同时它还提供一种新的编程模型和结构,可生成伸缩性和稳定性更好的应用程序,并提供更好的安全保护。

蒙在股里 发表于 2015-1-24 15:16:26

Asp.net脚本的出现,为ASP空间带来了更高的稳定性,同时也为程序员建站提供更高环境!

因胸联盟 发表于 2015-2-1 20:32:24

主流网站开发语言之PHP:PHP的全名非常有趣,它是一个巢状的缩写名称——“PHP:HypertextPreprocessor”,打开缩写还是缩写。PHP是一种HTML内嵌式的语言(就像上面讲的ASP那样)。而PHP独特的语法混合了C,Java,Perl以及PHP式的新语法。它可以比CGI或者Perl更快速地执行动态网页。

愤怒的大鸟 发表于 2015-2-7 16:22:42

ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码。

仓酷云 发表于 2015-2-22 16:23:01

我觉得什么语言,精通就好,你要做的就是比其他80%的人都厉害,你就能得到只有20%的人才能得到的高薪。

小女巫 发表于 2015-3-7 01:37:58

关于ASP.NET功能上,ASP.NET比微软以前的ASP(96年出现)有更强大的library,更好的稳定性。ASP.NET可以使用.NETFramework中所有组件(也就是说.NET能实现的,ASP.NET一样能实现)。

灵魂腐蚀 发表于 2015-3-14 06:49:01

CGI程序在运行的时候,首先是客户向服务器上的CGI程序发送一个请求,服务器接收到客户的请求后,就会打开一个新的Process(进程)来执行CGI程序,处理客户的请求。CGI程序最后将执行的结果(HTML页面代码)传回给客户。

第二个灵魂 发表于 2015-3-21 01:32:53

Asp.net:首先来说,Asp.net和Asp没什么关系,看着像是升级版本什么的,其实没什么联系。Asp是脚本编程,用的是ASP语言,而ASP.net用的是C#语言,完全不同的东西。
页: [1]
查看完整版本: 来一篇关于NET的ASP.NET Session形成哀求堵塞征象