首页 技术教程 实用代码 注册破解 正则表达式 网址导航 电子书籍

ASP.NET的Session会导致的性能问题

你的站点有被客户投诉很慢吗?是不是查了很多遍还是没有完全解决?是不是数据库没有发现异常,CPU也没有异常,内存占用量没有异常,GC计数没有异常,硬盘IO也没有异常,带宽没有异常,线路没有异常,没有丢包,但就是被投诉?而且还是阵发性的,有某个用户投诉慢的时候,你访问却很快,本地又复现不出来?今天你访问了博客园真是太幸运了,也许这里就有你想要的一个答案——假如你的站点动态处理了图片或者其他原本不会动态处理的非网页资源的话。没想到吧,这是Session惹的祸! 我们公司某个站点访问量一直很大,几年前就已经发现客户经常投诉说很慢,而这个问题我们一直都在排查和解决。从线路问题,到数据库连接泄露,到...
类别:网页编程 - ASP.NET    查看:124    更新:2014-05-20

Session丢失问题解决方案

Session丢失已经是一种习以为常的问题了,在自己也了解一些如何解决的问题,但是也一直没有机会去用,现在由于新的项目要在B/S下开发,所以不得不让我考虑Session的问题。 解决session丢失的问题有两种方法:1)将session保存在一台sate server中。2)将session保存在sql server中。我们使用的数据库是oracle,不想再装一个数据库,所以用了第一种方法。 首先根据网上查的资料对webconfig文件中session部分进行修改。如下: <sessionState    mode="StateServer"    cookieless="false"    timeout="240"    stateConne...
类别:网页编程 - ASP.NET    查看:131    更新:2014-05-20

如何实现Asp与Asp.Net共享Session

在.net中,Session的存储机制已经与Asp的存储机制不一样,虽然可以在同一个IIS下同时运行asp与aspx,但是它们之间不能传递Session。   之前大批系统应用到了asp,在升级过程中,如果完全抛弃asp来重写,一来工作量太大,二来以前的成果不能保存下来。   所以微软提出了一个Session共享的解决方案,只是此文档光说明原理,并没有说具体的操作步骤,由此,我撰文描述过程。   简单说明原理,asp与asp.net之间的Session统一存储在数据库中来实现共享   1、创建数据表   打开SQL Server查询分析器,运行以下脚本来创建数据表,数据表名为SessionState   i...
类别:网页编程 - ASP.NET    查看:105    更新:2014-05-20

在自定义HttpHandler中使用Session

最近需要做一个对特定请求进行响应的接口,只是在内部处理,不存在UI,机于这种情况,当然是使用实现IHttpHandler来进行处理,可以减掉加载HTML 控件的时间。本来都是这样想的,对于IHttpHandler 中定义了两个方法,ProcessRequest(HttpContext ctx) 和 IsRunable() 这两个,看到在ProcessRequest(HttpContext ctx) 中有个HttpContext的输入参数,本来以为通过这个就可以对所有的服务器对象进行使用,只是在前面需要对HttpContext的引用。不过问题出现了,在这个自定义HTTP 响应处理头中需要写入Session,对于其他Request和Response 都可以通过使用HttpContext来引用使用,不过Session 就是不行,总是出现对...
类别:网页编程 - ASP.NET    查看:113    更新:2014-05-20

利用文件属性结合Session实现在线人数统计

<?php ob_start(); session_start(); $num=0; $dirpt = "online"; $reftime = 1; if (is_dir($dirpt) && $dir = opendir($dirpt)) { while (($file = readdir($dir)) !== false) { if(strcmp($file,"..")==0 || strcmp($file,".")==0){ continue; } $D_[date("Y-m-d H:i:s",filemtime($dirpt."/".$file))]=$file; $num++; unset($cum); } closedir($dir); $filename = session_id(); $fp = fopen($dirpt."/".$filename,"w"); fputs($fp,""); fclose($fp); $ntime = date("Y-m-d H:i:s",mktime(date("...
类别:网页编程 - PHP技术    查看:106    更新:2014-05-19

多Web服务器之间共享Session的解决方案

  很多开发中涉及到用户的Session验证很保留的问题,这个问题比较有意思,总结了几种方案,只供参考。   [ 问题提出 ]   为了满足足够大的应用,满足更多的客户,于是我们架设了N台Web服务器(N>=2),在多台Web服务器的情况下,我们会涉及到一个问题:用户登陆一台服务器以后,如果在跨越到另一台服务器的时候能够继续使用客户的Session?   (以下描述方案只是针对Linux/Unix + Apache + Mysql + PHP的开发架构,当然,也可以扩展到其他平台。)   [ 问题解决方案 ]   既然我们的问题已经摆在面前了,那么就要从技术角度去解决问题,给我们的客户更好的体验,总结了几个方案。   1. 写客户...
类别:网页编程 - PHP技术    查看:143    更新:2014-05-19

session一些问题集合

PHP的session功能,一直为许多的初学者为难。就连有些老手,有时都被搞得莫名其妙。本文,将这些问题,做一个简单的汇总,以便查阅。 1. 错误提示 Warning: Cannot send session cookie - headers already sent Warning: Cannot send session cache limiter - headers already sent 分析及解决办法 这一类问题,的原因是你在程序中使用session_start()时,之前已经有实际的html内容输出了。或许你说,我没有啊,我只不过是echo或print一条消息了。很抱歉,你的echo或print语句所产生的输出,就是实际的html内容输出。解决此类问题的办法是,将你的session_start()调到程序的第一行。 2. 错误提示 Warning: open(F:/689\php...
类别:网页编程 - PHP技术    查看:99    更新:2014-05-19

session_set_save_handler函数重载session存储方式

<?    $DB_SERVER = "server"; /* database server hostname */    $DB_NAME = "dbname"; /* database name */    $DB_USER = "root"; /* database user */    $DB_PASS = "*************"; /* database password */    $DB_SELECT_DB = "";    $SESS_LIFE = get_cfg_var("session.gc_maxlifetime");    function sess_open($save_path, $session_name) {    global $DB_SERVER, $DB_NAME, $DB_USER, $DB_PA...
类别:网页编程 - PHP技术    查看:118    更新:2014-05-19

解决网址中php session id导致的网站读取问题

日前因为测试版Linux核心更新失败,系统整个重新安装,更新网页伺服器为Apache 2.2.6,并更新PHP 5.2.4后,自己忘了把一项设定做修改,以至于只要访客每次开启浏览器上网,「初次」拜访本站时,系统会自动修改访客阅读页面中的连结,在网址后面加上一串「PHPSESSID=xxxxxxxxxxxxxxxxxxxxxx」的字样,点选之后,会被传导到网站首页,之后点选任何连结就不会有网址包含php session id的现象。 这是因为php在提供访客浏览页面时,碰到浏览器不支援cookie或关闭cookes功能的访客,会透过自动重写网址,加上php session id来支援session。而网路访客不论是用什么浏览器,连结本站打开第一个页面时,Apache网页伺服器搭配php的系统收到你...
类别:网页编程 - PHP技术    查看:107    更新:2014-05-19

PHP5:session会话的使用和分析

Session的中文译名叫做“会话”,其本来的含义是指有始有终的一系列动作/消息,比如打电话时从拿起电话拨号到挂断电话这中间的一系列过程可以称之为一个session。目前社会上对session的理解非常混乱:有时候我们可以看到这样的话“在一个浏览器会话期间,...”,这里的会话是指从一个浏览器窗口打开到关闭这个期间;也可以看到“用户(客户端)在一次会话期间”这样一句话,它可能指用户的一系列动作(一般情况下是同某个具体目的相关的一系列动作,比如从登录到选购商品到结账登出这样一个网上购物的过程;然而有时候也可能仅仅是指一次连接;其中的差别只能靠上下文来推断了。   然而当session 一词与网络协议相关联时,它又往往隐含了“面向...
类别:网页编程 - PHP技术    查看:89    更新:2014-05-19

使用无限生命期Session的方法

本文不敢说非常好,但是笔者相信大多数PHPer都曾经想过这些问题。 使用无限生命期Session的方法 在PHP4.0中加入了对Session的支持,方便了我们很多程序,比如购物车等等! 在很多论坛中,Session也用于处理用户的登陆,记录下用户名和密码,使得用户不必每次都输入自己的用户名和密码!但是一般的Session的生命期有限,如果用户关闭了浏览器,就不能保存Session的变量了!那么怎么样可以实现Session的永久生命期呢? 大家知道,Session储存在服务器端,根据客户端提供的SessionID来得到这个用户的文件,然后读取文件,取得变量的值,SessionID可以使用客户端的Cookie或者Http1.1协议的Query_String(...
类别:网页编程 - PHP技术    查看:85    更新:2014-05-19

变量的“追随”:cookie与session

在很多时候,我们需要跟踪浏览者在整个网站的活动,对他们身份进行自动或半自动的识别(也就是平时常说的网站登陆之类的功能),这时候,我们常采用一组变量来"追随"访客。实现变量"追随"有很多种方法,比较用得多的是cookie和session。下面我们用时下很流行的PHP为大家讲解一下它们的使用。 一.Cookie的使用   Cookie是网站保存在浏览器客户端的信息,也就是说保存在访客的机器里的变量,一般随着HTTP 头发送到客户端。在Cookie生效之后及失效之前,客户每次发出页面请求的时候,都会把Cookie一块发送到服务器,只要我们针对它进行相应的处理,就可以实现变量"追随"。 1. 设置一个Cookie变量   设置一个Cookie变量,...
类别:网页编程 - PHP技术    查看:115    更新:2014-05-19

用Session对Web页面进行保护

在很多时候,我们都要对某些Web 页面进行安全保护。典型的例子就是前台浏览页面与后台管理页面的安全性。这也是 WEB 上用得最多的一种页面安全模式。在用PHP4 开发一个小型的书籍管理系统中,我也遇到了这个安全问题。于是我想到了PHP4 的新特性----Session .. 要求目的:同一站点,无权用户,一般授权用户和超级用户能看到和使用不同的页面。 实现办法:在要保护的页面 include 不同级别的安全检验摸板。 注意事项: 1 > 要避免用户浏览器不使用 cookie 而不能浏览受保护的页面(session 默认使用客户端的 cookie). 2 > 要防止权限被盗用。( PHP 4 的 session 的默认存活期间是从建立 session 开始到关闭浏览器为止。) 如...
类别:网页编程 - PHP技术    查看:101    更新:2014-05-19

PHP实现多服务器共享SESSION数据

一、问题起源    稍大一些的网站,通常都会有好几个服务器,每个服务器运行着不同功能的模块,使用不同的二级域名,而一个整体性强的网站,用户系统是统一的,即一套用户名、密码在整个网站的各个模块中都是可以登录使用的。各个服务器共享用户数据是比较容易实现的,只需要在后端放个数据库服务器,各个服务器通过统一接口对用户数据进行访问即可。但还存在一个问题,就是用户在这个服务器登录之后,进入另一个服务器的别的模块时,仍然需要重新登录,这就是一次登录,全部通行的问题,映射到技术上,其实就是各个服务器之间如何实现共享 SESSION 数据的问题。二、PHP SESSION 的工作原理    在...
类别:网页编程 - PHP技术    查看:122    更新:2014-05-19

weblogic中设置session超时

1 web.xml 设置WEB应用程序描述符web.xml里的<session-timeout>元素。这个值以分钟为 单位,并覆盖weblogic.xml中的TimeoutSecs属性 <session-config> <session-timeout>24</session-timeout> </session-config> 此例表示Session将在24分钟后过期 当<session-timeout>设置为-2,表示将使用在weblogic.xml中设置的 TimeoutSecs这个属性值。 当<session-timeout>设置为-1,表示Session将永不过期,而忽略在 weblogic.xml中设置的TimeoutSecs属性值。 该属性值可以通过console控制台来设置 2 weblogic.xml 设置WebLogic特有部署描述符weblogic.xml的<session-descriptor>元素的 Ti...
类别:程序开发 - JAVA    查看:98    更新:2014-05-14

生成sessionid和随机密码实例

用这个可以来验证用户和生成随机密码teaman <? //---------------------------------------------------- // Function GetSID() // // Parameters : $nSize number of caracters, default 24 // Return value : 24 caracters string // // Description : This function returns a random string // of 24 caracters that can be used to identify users // on your web site in a more secure way. You can also // use this function to generate passwords. //---------------------------------------------------- function GetSID ($nSize=24) { // Randomize mt_srand ((double) microtime() * 1000000); for ($i=1; $...
类别:网页编程 - PHP技术    查看:102    更新:2014-05-04