|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
简单的说:.net只有微软一家在做的,微软也不允许别人跟他做相同的工具,所以他就把需要的工具全部封装在.net的平台上了;而java是公开了。为此ASP的利用者不能不本人手工将会话信息以会话ID为主键同步到内部数据库中,以减缓相似成绩。
而在ASP.NET中,由于计划时就思索了这些成绩,可以制止这些限定:1.撑持历程外的形态办理,经由过程自力形态办理服务或SQLServer形态服务器办理会话形态2.撑持不利用Cookie的形态保护,经由过程在URL中主动增添会话ID来制止利用Cookie3.经由过程自力的形态办理服务或SQLServer形态服务器撑持负载平衡时同步利用会话信息完成这些特征的恰是上节提到的SessionStateModule.InitModuleFromConfig函数中,依据SessionState标志的mode属性选择的四种分歧的形态办理器完成。
以下内容为程序代码:
<system.web>
<sessionStatemode="InProc"stateConnectionString="tcpip=127.0.0.1:42424"
stateNetworkTimeout="10"sqlConnectionString="datasource=127.0.0.1;
IntegratedSecurity=SSPI"cookieless="false"timeout="20"/>
</system.web>
Off形式克制会话办理,同时ASP.NET还同意经由过程在页面中以EnableSessionState属性细粒度办理页面的会话撑持形态以下内容为程序代码:
<%@PageEnableSessionState="TrueFalseReadOnly"%>
InProc形式兼容之前ASP的战略,在ASP.NET统一历程空间内完成基于内存的会话形态办理,速率最快但遭到与ASP不异的限定;STATESERVER形式经由过程ASP.NET自力安装的ASP.NETStateService服务(aspnet_state.exe),以stateConnectionString指定的IP和端口呼应会话形态服务;SQLServer形式则经由过程sqlConnectionString指定的SQLServer服务器,之内存一时表(以InstallSqlState.sql建库,利用tempdb内存数据库)或自力表(以InstallPersistSqlState.sql监控,利用自力的ASPState库)保护会话形态。
这四种分歧的形态办理器,在功能上据《PerformanceTuningandOptimizingASP.NETAppliation》一书的测试,绝对值以下:以下为援用:Table4-1:NormalizedTTLB(TimetoLastByte)bySessionStateMode(inMillisecondsper100Requests)
CONCURRENTBROWSERSMODE=OFFMODE=INPROCMODE=STATESERVERMODE=SQLSERVER17.814.548.278.47528.2820.2527.2529.291089.3846.0877.2985.11Table4-2:AverageRequestsperSecondbySessionStateModeCONCURRENTBROWSERSMODE=OFFMODE=INPROCMODE=STATESERVERMODE=SQLSERVER118.8624.1718.3118.11521.6625.7421.5421.341017.2323.818.1117.6能够看到,不管是从TTLB仍是每秒均匀哀求数来讲,历程外形态办理器的功能都是能够使人承受的,固然还必要针对形态办理情形在编写代码时做相干优化。不外要利用历程外形态办理器,则保留在会话中的工具遭到必需进步二进制序列化撑持的限定。
从利用角度来看,形态办理器实践上都是由上节提到的HttpSessionModule创建办理,并经由过程HttpSessionState接口供应会见的,布局以下图:MSDN上的UnderpinningsoftheSessionStateImplementationinASP.NET一文十分具体的注释了几种分歧形态办理器的道理和利用,这儿就不罗嗦了。
有时也搞不懂应该学那种;主要看你以后去的那个公司是使用哪种了。就像王千祥的课上说的:企业应用现在主要就三层(其实也差不多就是MVC):表示层(主要使用html写的,很简单)、业务逻辑层(主要就是应用服务器的)。最后就是数据层(其实就是学习数据库) |
|