ASP.NET Session¶ªÊ§ÎÊÌâÔÒò¼°½â¾ö·½°¸
Õý³£²Ù×÷Çé¿öÏ»áÓÐASP.NET Session¶ªÊ§µÄÇé¿ö³öÏÖ¡£ÒòΪ³ÌÐòÊÇÔÚ²»Í£µÄ±»²Ù×÷£¬ÅųýSession³¬Ê±µÄ¿ÉÄÜ¡£ÁíÍ⣬Session³¬Ê±Ê±¼ä±»É趨³É60·ÖÖÓ£¬²»»áÕâô¿ì¾Í³¬Ê±µÄ¡£
ÏÖÔÚÎҾͰÑÔÒòºÍ½â¾ö°ì·¨Ð´³öÀ´¡£
ASP.NET Session¶ªÊ§ÔÒò£º
ÓÉÓÚAsp.net³ÌÐòÊÇĬÈÏÅäÖã¬ËùÒÔWeb.ConfigÎļþÖйØÓÚSessionµÄÉ趨ÈçÏ£º
< sessionState mode='InProc' stateConnectionString='tcpip=127.0.0.1:42424' sqlConnectionString='data source=127.0.0.1;Trusted_Connection=yes' cookieless='true' timeout='60'/>
ÎÒÃǻᷢÏÖsessionState±êÇ©ÖÐÓиöÊôÐÔmode£¬Ëü¿ÉÒÔÓÐ3ÖÖȡֵ£ºInProc¡¢StateServer?SQLServer£¨´óСдÃô¸Ð£© ¡£Ä¬ÈÏÇé¿öÏÂÊÇInProc£¬Ò²¾ÍÊǽ«Session±£´æÔÚ½ø³ÌÄÚ£¨IIS5ÊÇaspnet_wp.exe£¬¶øIIS6ÊÇW3wp.exe£©£¬Õâ¸ö½ø³Ì²»Îȶ¨£¬ÔÚijЩʼþ·¢Éúʱ£¬½ø³Ì»áÖØÆð£¬ËùÒÔÔì³ÉÁË´æ´¢Ôڸýø³ÌÄÚµÄSession¶ªÊ§¡£
ÄÄЩÇé¿öϸýø³Ì»áÖØÆðÄØ£¿Î¢ÈíµÄһƪÎÄÕ¸æËßÁËÎÒÃÇ£º
1¡¢ÅäÖÃÎļþÖÐprocessModel±êÇ©µÄmemoryLimitÊôÐÔ
2¡¢Global.asax»òÕßWeb.configÎļþ±»¸ü¸Ä
3¡¢BinÎļþ¼ÐÖеÄWeb³ÌÐò£¨DLL£©±»ÐÞ¸Ä
4¡¢É±¶¾Èí¼þɨÃèÁËһЩ.configÎļþ¡£
¸ü¶àµÄÐÅÏ¢Çë²Î¿¼PRB: Session variables are lost intermittently in ASP.NET applications
ASP.NET Session¶ªÊ§½â¾ö°ì·¨£º
Ç°ÃæËµµ½µÄsessionState±êÇ©ÖÐmodeÊôÐÔ¿ÉÒÔÓÐÈý¸öȡֵ£¬³ýÁËInProcÖ®Í⣬»¹¿ÉÒÔΪStateServer¡¢SQLServer¡£ÕâÁ½ÖÖ´æSessionµÄ·½·¨¶¼Êǽø³ÌÍâµÄ£¬ËùÒÔµ±aspnet_wp.exeÖØÆðµÄʱºò£¬²»»áÓ°Ïìµ½Session¡£
ÏÖÔÚÇ뽫modeÉ趨ΪStateServer¡£StateServerÊDZ¾»úµÄÒ»¸ö·þÎñ£¬¿ÉÒÔÔÚϵͳ·þÎñÀï¿´µ½·þÎñÃûΪASP.NET State ServiceµÄ·þÎñ£¬Ä¬ÈÏÇé¿öÊDz»Æô¶¯µÄ¡£µ±ÎÒÃÇÉ趨modeΪStateServerÖ®ºó£¬ÇëÊÖ¹¤½«¸Ã·þÎñÆô¶¯¡£
ÕâÑù£¬ÎÒÃǾÍÄÜÀûÓñ¾»úµÄStateServiceÀ´´æ´¢SessionÁË£¬³ý·ÇµçÄÔÖØÆô»òÕßStateService±Àµô£¬·ñÔòSessionÊDz»»á¶ªµÄ£¨ÒòSession³¬Ê±±»¶ªÆúÊÇÕý³£µÄ£©¡£
³ý´ËÖ®Í⣬ÎÒÃÇ»¹¿ÉÒÔ½«Sessionͨ¹ýÆäËûµçÄÔµÄStateServiceÀ´±£´æ¡£¾ßÌåµÄÐÞ¸ÄÊÇÕâÑùµÄ¡£Í¬Ñù»¹ÔÚsessionState±êÇ©ÖУ¬ÓиöstateConnectionString='tcpip=127.0.0.1:42424'ÊôÐÔ£¬ÆäÖÐÓиöipµØÖ·£¬Ä¬ÈÏΪ±¾»ú£¨127.0.0.1£©£¬Äã¿ÉÒÔ½«Æä¸Ä³ÉÄãËùÖªµÄÔËÐÐÁËStateService·þÎñµÄµçÄÔIP£¬ÕâÑù¾Í¿ÉÒÔʵÏÖλÓÚ²»Í¬µçÄÔÉϵÄAsp.net³ÌÐò»¥Í¨SessionÁË¡£
Èç¹ûÄãÓиü¸ßµÄÒªÇó£¬ÐèÒªÔÚ·þÎñÆÚÖØÆôʱSessionÒ²²»¶ªÊ§£¬¿ÉÒÔ¿¼Âǽ«modeÉ
Ïà¹ØÎĵµ£º
ÔÚÄãµÄPage_LoadÖÐÌí¼ÓÕâÑùµÄ´úÂë:
Page.Response.Clear();
bool success = ResponseFile(Page.Request, Page.Response, "Ä¿µÄÎļþÃû³Æ", @"Ô´Îļþ·¾¶", 1024000);
if (!success)
Response.Write("ÏÂÔØÎļþ³ö´í£¡");
Page. ......
//TransmitFileʵÏÖÏÂÔØ
protected void Button1_Click(object sender, EventArgs e)
{
/*
......
asp.netÎļþÉÏ´«£¨0£©
2009Äê04ÔÂ13ÈÕ ÐÇÆÚÒ» ÏÂÎç 06:11
Default.aspx:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"& ......