ÎÊ£ºÎªÊ²Ã´SessionÔÚÓÐЩ»úÆ÷ÉÏż¶û»á¶ªÊ§£¿
´ð£º¿ÉÄܺͻúÆ÷µÄ»·¾³ÓйØÏµ£¬±ÈÈ磺·À»ðǽ»òÕßɱ¶¾Èí¼þµÈ£¬³¢ÊԹرշÀ»ðǽ¡£
ÎÊ£ºÎªÊ²Ã´µ±µ÷ÓÃSession.Abandonʱ²¢Ã»Óм¤·¢Session_End·½·¨£¿
´ð£ºÊ×ÏÈSession_End·½·¨Ö»Ö§³ÖInProc£¨½ø³ÌÄڵģ©ÀàÐ͵ÄSession¡£Æä´ÎÒª¼¤·¢Session_End·½·¨£¬±ØÐë´æÔÚSession£¨¼´ÏµÍ³ÖÐÒѾʹÓÃSessionÁË£©£¬²¢ÇÒÖÁÉÙÒªÍê³ÉÒ»´ÎÇëÇó£¨ÔÚÕâ´ÎÇëÇóÖлáµ÷Óø÷½·¨£©¡£
ÎÊ£ºÎªÊ²Ã´µ±ÎÒÔÚInProcģʽÏÂʹÓÃSession»á¾³£¶ªÊ§£¿
´ð£º¸ÃÎÊÌâͨ³£ÊÇÓÉÓÚÓ¦ÓóÌÐò±»»ØÊÕµ¼Öµģ¬ÒòΪµ±Ê¹Óýø³ÌÄÚSessionʱ£¬SessionÊDZ£´æÔÚaspnet_wp½ø³ÌÖУ¬µ±¸Ã½ø³Ì±»»ØÊÕSession×ÔȻҲ¾ÍûÓÐÁË£¬È·¶¨¸Ã½ø³ÌÊÇ·ñ±»»ØÊÕ¿ÉÒÔͨ¹ý²é¿´ÏµÍ³µÄʼþ²é¿´Æ÷»ñµÃÐÅÏ¢¡£
¾ßÌåÐÅÏ¢Çë²Î¿¼£º
Session variables are lost intermittently in ASP.NET applications
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q316148
ÔÚ1.0µÄʱºòÒ²ÓÐÒ»¸öbug»áµ¼Ö¹¤×÷½ø³Ì±»»ØÊÕ²¢ÖØÆô£¬¸ÃbugÒѾÔÚ1.1ºÍsp2ÖÐÐÞ¸´¡£
¹ØÓÚ¸ÃbugµÄÏêϸÐÅÏ¢Çë²Î¿¼£º
ASP.NET Worker Process (Aspnet_wp.exe) Is Recycled Unexpectedly.
http://support.microsoft.com/default.aspx?scid=kb; ......
À´Ô´:²Ý¸ùÕ¾³¤
Cookie (HttpCookieµÄʵÀý)ÌṩÁËÒ»ÖÖÔÚ Web Ó¦ÓóÌÐòÖд洢Óû§Ìض¨ÐÅÏ¢µÄ·½·¨¡£ÀýÈ磬µ±Óû§·ÃÎÊÄúµÄÕ¾µãʱ£¬Äú¿ÉÒÔʹÓÃCookie ´æ´¢Óû§Ê×Ñ¡Ïî»òÆäËûÐÅÏ¢¡£µ±¸ÃÓû§ÔٴηÃÎÊÄúµÄÍøÕ¾Ê±£¬Ó¦ÓóÌÐò±ã¿ÉÒÔ¼ìË÷ÒÔǰ´æ´¢µÄÐÅÏ¢¡£
ASP.NETÖеÄcookie£º´´½¨Cookie·½·¨ (1)
Response.Cookies["userName"].Value = “admin";
Response.Cookies[“userName”].Expires = DateTime.Now.AddDays(1);
//Èç¹û²»ÉèÖÃʧЧʱ¼ä,CookieÐÅÏ¢²»»áдµ½Óû§Ó²ÅÌ,ä¯ÀÀÆ÷¹Ø±Õ½«»á¶ªÆú¡£
ASP.NETÖеÄcookie£º´´½¨Cookie·½·¨ (2)
HttpCookie aCookie = new HttpCookie(“lastVisit”);
//ÉÏÒ»´Î·ÃÎÊʱ¼ä
aCookie.Value = DateTime.Now.ToString();
aCookie.Expires = DateTime.Now.AddDays(1);
Response.Cookies.Add(aCookie);
ASP.NETÖеÄcookie£º·ÃÎÊCookie·½·¨(1)
if(Request.Cookies["userName"] != null)
Label1.Text = Server.HtmlEncode(Request.Cookies["userName"].Value);
·ÃÎÊCookie·½·¨(2)
if(Request.Cookies["userName"] != null) {
HttpCookie aCookie = Request.Cookies["userName"];
Label1.Text = Serve ......
ASP.NET ÉúÃüÖÜÆÚ
¶ÔÓÚAsp.netÒ³Ãæ²ã¿ª·¢ÎÞÂÛÊÇÐ´Ò³Ãæ»¹ÊÇд¿Ø¼þ£¬ÎÒ¾õµÃ¶¼¿ÉÒÔÓÃÒ»¾ä»°ÃèÊö:"Do the right thing at the right time in the right place."
±¾ÎÄͨ¹ý¼ÇÂ¼Ò³ÃæÊ¼þµÄ´¥·¢Ë³Ðò¿´ÇëÇóµÄ´¦ÀíÁ÷³Ì£¬´ÓÖпÉÒÔ¿´³öASP.NET µÄÉúÃüÖÜÆÚ
´´½¨Ò»¸öÍøÕ¾£¬ÔÚÒ³ÃæÉÏÌí¼ÓÒ»¸öLabelºÍÒ»¸öButton£¬ÔÚDefault.aspx.csÖÐÐ޸ĴúÂëÈçÏ£º
using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
public partial class _Default : System.Web.UI.Page
{
protected void Page_PreInit(object sender, EventArgs e)
{
Response.Write("Page_PreInit<br/>");
}
protected void Page_Init(object sender, EventArgs e)
{
Response.Write("Page_Init<br/>");
}
protected void Page_InitComplete(object sender, EventArgs e)
{
Response.Write ......
1. Êý¾Ý¿â·ÃÎÊÐÔÄÜÓÅ»¯¡¡
¡¡
Êý¾Ý¿âµÄÁ¬½ÓºÍ¹Ø±Õ
·ÃÎÊÊý¾Ý¿â×ÊÔ´ÐèÒª´´½¨Á¬½Ó¡¢´ò¿ªÁ¬½ÓºÍ¹Ø±ÕÁ¬½Ó¼¸¸ö²Ù×÷¡£ÕâЩ¹ý³ÌÐèÒª¶à´ÎÓëÊý¾Ý¿â½»»»ÐÅÏ¢ÒÔͨ¹ýÉí·ÝÑéÖ¤£¬±È½ÏºÄ·Ñ·þÎñÆ÷×ÊÔ´¡£ASP.NETÖÐÌṩÁËÁ¬½Ó³Ø(Connection Pool)¸ÄÉÆ´ò¿ªºÍ¹Ø±ÕÊý¾Ý¿â¶ÔÐÔÄܵÄÓ°Ï졣ϵͳ½«Óû§µÄÊý¾Ý¿âÁ¬½Ó·ÅÔÚÁ¬½Ó³ØÖУ¬ÐèҪʱȡ³ö£¬¹Ø±ÕʱÊÕ»ØÁ¬½Ó£¬µÈ´ýÏÂÒ»´ÎµÄÁ¬½ÓÇëÇó¡£Á¬½Ó³ØµÄ´óСÊÇÓÐÏ޵ģ¬Èç¹ûÔÚÁ¬½Ó³Ø´ïµ½×î´óÏ޶ȺóÈÔÒªÇó´´½¨Á¬½Ó£¬±ØÈ»´ó´óÓ°ÏìÐÔÄÜ¡£Òò´Ë£¬ÔÚ½¨Á¢Êý¾Ý¿âÁ¬½ÓºóÖ»ÓÐÔÚÕæÕýÐèÒª²Ù×÷ʱ²Å´ò¿ªÁ¬½Ó£¬Ê¹ÓÃÍê±ÏºóÂíÉϹرգ¬´Ó¶ø¾¡Á¿¼õÉÙÊý¾Ý¿âÁ¬½Ó´ò¿ªµÄʱ¼ä£¬±ÜÃâ³öÏÖ³¬³öÁ¬½ÓÏÞÖÆµÄÇé¿ö¡£ ¡¡¡¡
ʹÓô洢¹ý³Ì ¡¡
¡¡
´æ´¢¹ý³ÌÊÇ´æ´¢ÔÚ·þÎñÆ÷ÉϵÄÒ»×éÔ¤±àÒëµÄSQLÓï¾ä£¬ÀàËÆÓÚDOSϵͳÖеÄÅú´¦ÀíÎļþ¡£´æ´¢¹ý³Ì¾ßÓжÔÊý¾Ý¿âÁ¢¼´·ÃÎʵŦÄÜ£¬ÐÅÏ¢´¦Àí¼«ÎªÑ¸ËÙ¡£Ê¹Óô洢¹ý³Ì¿ÉÒÔ±ÜÃâ¶ÔÃüÁîµÄ¶à´Î±àÒ룬ÔÚÖ´ÐÐÒ»´ÎºóÆäÖ´Ðй滮¾ÍפÁôÔÚ¸ßËÙ»º´æÖУ¬ÒÔºóÐèҪʱֻÐèÖ±½Óµ÷Óûº´æÖеĶþ½øÖÆ´úÂë¼´¿É¡£ÁíÍ⣬´æ´¢¹ý³ÌÔÚ·þÎñÆ÷¶ËÔËÐУ¬¶ÀÁ¢ÓÚASP.NET³ÌÐò£¬±ãÓÚÐ޸ģ¬×îÖØÒªµÄÊÇËü¿ÉÒÔ¼õÉÙÊý¾Ý¿â²Ù×÷Óï¾äÔÚÍøÂçÖеĴ«Êä¡£
ÓÅ»¯²éѯÓï¾ä
¡¡¡¡
ASP.NETÖÐADOÁ¬½ÓÏûºÄµÄ×ÊÔ´Ï൱´ó ......
ASP.NET±à³ÌµÄÊ®´ó¼¼ÇÉ
·¢²¼ÈÕÆÚ£º2008-08-03
1¡¢ÔÚʹÓÃVisual Studio .NETʱ£¬³ýÖ±½Ó»ò·ÇÒýÓõĶÔÏóÍ⣬²»ÒªÊ¹ÓÃȱʡµÄÃû×Ö
.NET´øÀ´µÄºÃ´¦Ö®Ò»ÊÇËùÓеÄÔ´´úÂëºÍÅäÖÃÎļþ¶¼ÊÇ´¿Îı¾Îļþ£¬Äܹ»Ê¹ÓÃNotepad»òWordPadµÈÈÎÒâµÄÎı¾±à¼Æ÷½øÐб༡£Èç¹û²»Ô¸ Ò⣬ÎÒÃDz¢·ÇÒ»¶¨ÒªÊ¹ÓÃVisual Studio .NET×÷Ϊ¼¯³É¿ª·¢»·¾³¡£µ«Ê¹ÓÃÁËVisual Studio .NET£¬ÎÒÃÇ¿ÉÒÔÔÚWindowsÎļþ¹ÜÀíÆ÷Öп´µ½Îļþ£¬»òÔÚVisual Studio .NETÖ®Íâ´ÓÎı¾±à¼Æ÷ÖÐä¯ÀÀÎļþµÄÄÚÈÝ¡£ ×Ö´®4
ʹÓÃVisual Studio .NET×÷Ϊ¼¯³É¿ª·¢»·¾³ÓÐÐí¶àºÃ´¦£¬ÆäÖÐ×îÏÔÖøµÄºÃ´¦ÊÇËü¼«´óµØÌá¸ßÁËÉú²úЧÂÊ¡£Ê¹ÓÃVisual Studio. NET£¬ÎÒÃÇÄܹ»ÔÚ¸¶³ö½ÏС´ú¼ÛµÄÇé¿öϸü¿ìµØ¿ª·¢Èí¼þ¡£×÷Ϊ¼¯³É¿ª·¢»·¾³Ò»²¿·ÖµÄIntelliSenseÌṩ×Ô¶¯µÄ´úÂëÍê³É¡¢ÔÚÊäÈë·½·¨»òº¯ÊýʱÌṩ ¶¯Ì¬°ïÖú¡¢Óï·¨´íÎóµÄʵʱÌáʾ£¬ÒÔ¼°ÆäËûÄܹ»Ìá¸ßÉú²úЧÂʵŦÄÜ¡£ ×Ö´®7
ÏóÆäËû¸´ÔӵŤ¾ßÄÇÑù£¬ÔÚѧ»áÈçºÎ³ä·Ö·¢»ÓËüµÄ×÷ÓúÍÕÆÎÕÆä“ϰÐԔǰ£¬Visual Studio .NETÒ²»áʹÎÒÃDzúÉúÒ»ÖÖ´ìÕ۸С£ÓÐʱ£¬ËüÏóÒ»¸öÄÑÒÔÁ˽âµÄºÚºÐ×Ó£¬»áÉú³É´óÁ¿µÄÎļþºÍÐí¶àÎÞÓõĴúÂë¡£
Visual Studio .NETµÄÒ»¸ö¹¦ÄÜÊÇ£¬ÎÞÂÛÊÇÀà¡¢¿Ø¼þ»ò±íµ¥ÖеĶÔÏó£¬Ëü¶ ......
½ñÌìTMȺÀïÓÐÈËÎÊÆð¹ØÓÚÒ³Ãæ´«ÖµµÄ·½·¨£¬ÓÖÒý·¢ÁËÒ»³¡ÌÖÂÛ¡£¿´À´Õâ¸ö»¹ÊÇÓкܶàÈ˹Ø×¢µÄ£¬Òò´ËÎÒ¾ÍÎÒ¸öÈ˹۵ã×öÁËЩ×ܽᣬϣÍû¶Ô´ó¼ÒÓÐËù°ïÖú¡£
¡¡¡¡1. ʹÓÃQueryString±äÁ¿
¡¡¡¡¡¡¡¡QueryStringÊÇÒ»Öַdz£¼òµ¥µÄ´«Öµ·½Ê½£¬Ëû¿ÉÒÔ½«´«Ë͵ÄÖµÏÔʾÔÚä¯ÀÀÆ÷µÄµØÖ·À¸ÖС£Èç¹ûÊÇ´«µÝÒ»¸ö»ò¶à¸ö°²È«ÐÔÒªÇ󲻸߻òÊǽṹ¼òµ¥µÄÊýֵʱ£¬¿ÉÒÔʹÓÃÕâ¸ö·½·¨¡£µ«ÊǶÔÓÚ´«µÝÊý×é»ò¶ÔÏóµÄ»°£¬¾Í²»ÄÜÓÃÕâ¸ö·½·¨ÁË¡£ÏÂÃæÊÇÒ»¸öÀý×Ó£º
a.aspxµÄC#´úÂë
private void Button1_Click(object sender, System.EventArgs e)
{
string s_url;
s_url = "b.aspx?name=" + Label1.Text;
Response.Redirect(s_url);
}
b.aspxÖÐC#´úÂë
private void Page_Load(object sender, EventArgs e)
{
Label2.Text = Request.QueryString["name"];
}
¡¡¡¡2. ʹÓÃApplication ¶ÔÏó±äÁ¿
¡¡¡¡¡¡¡¡Application¶ÔÏóµÄ×÷Ó÷¶Î§ÊÇÕû¸öÈ«¾Ö£¬Ò²¾ÍÊÇ˵¶ÔËùÓÐÓû§¶¼ÓÐЧ¡£Æä³£Óõķ½·¨ÓÃLockºÍUnLock¡£
a.aspxµÄC#´úÂë
private void Button1_Click(object sender, System.EventArgs e)
{
Appl ......