¡¡¡¡¼¼ÇÉ1£º½«³£ÓÃÊý¾ÝÔÚWeb·þÎñÆ÷¶Ë»º´æÆðÀ´ 

¡¡¡¡´ó²¿·ÖµÄASPÒ³Ãæ¶¼Òª´Óºǫ́Êý¾Ý¿âÖÐÌáÈ¡Êý¾Ý£¬È»ºó½«Êý¾ÝÓÃHTML·½Ê½±íÏÖ³öÀ´¡£ 
²»¹ÜÄãµÄÊý¾Ý¿â¶àô¿ì£¬´ÓÄÚ´æÖÐÌáÈ¡Êý¾Ý×ܱȴӺǫ́Êý¾Ý¿âÖÐÌáÈ¡¿ì£»´Ó±¾µØÓ²ÅÌÖжÁÈ¡Êý¾Ýͨ³£Ò²±È´ÓÊý¾Ý¿âÖп졣Òò´Ë£¬Äã¿ÉÒÔͨ¹ýÔÚWeb·þÎñÆ÷¶Ë»º´æÊý¾ÝÀ´Ìá¸ßÐÔÄÜ¡£ 

¡¡¡¡»º´æÊǸöµäÐ͵ÄÒԿռ任ȡʱ¼äµÄ½»Òס£Èç¹ûÄãÕýÈ·µÄ»º´æÁËÊý¾Ý£¬ÐÔÄÜ¿ÉÄÜ»áÍ»·ÉÃͽø¡£ÒªÏëÒ»¸ö»º´æÄÜÕæÕý·¢»ÓÐ§Òæ£¬±ØÐ뻺³åÄÇЩ³£ÓúͼÆË㸴ÔÓµÄÊý¾Ý¡£×°Âú¹ýÆÚÊý¾ÝµÄ»º³åÇøÖ»ÄÜÀË·ÑÄÚ´æ¡£ 

¡¡¡¡²»¾­³£±ä»¯µÄÊý¾ÝÒ²ÊÇ»º´æµÄÒ»¸öÁ¼ºÃºòÑ¡Õߣ¬ÒòΪÄã¿ÉÒÔ²»ÓùØÐÄͬÊý¾Ý¿âÖеÄÊý¾Ý±£³Öͬ²½¡£ÏÂÀ­Áбí¿ò¡¢ÒýÓÃ±í¡¢Ð¡¶ÎDHTML´úÂ룬XML×Ö·û´®¡¢²Ëµ¥ÏîºÍÕ¾µãÅäÖñäÁ¿£¨°üÀ¨Êý¾ÝÔ´Ãû×Ö£¨DSN£©£¬IPµØÖ·ºÍWeb·¾¶£©¶¼ÊǺܺõĻº´æºòÑ¡Õß¡£×¢Ò⣬²»½ö½ö¿ÉÒÔ»º´æÊý¾Ý±¾Éí£¬»¹¿ÉÒÔ»º´æÊý¾ÝµÄ±íÏÖ¡£Èç¹ûÒ»¸öASPÒ³ÃæºÜÉٱ仯£¬²¢ÇÒ»º´æ´ú¼Û±È½Ï¸ß£¨±ÈÈ磬²úÆ·ÁÐ±í£©£¬¿ÉÒÔ¿¼ÂÇÓþ²Ì¬HTMLÒ³Ãæ¡£

¡¡¡¡¼¼ÇÉ2£ºÓÃApplication¶ÔÏó»òSession¶ÔÏ󻺴泣ÓÃÊý¾Ý 

¡¡¡¡ASPµÄApplicationºÍSession¶ÔÏóÊÇÒ»¸ö¼«Æä·½±ãµÄÔÚÄÚ´æÖлº´æÊý¾ÝµÄÈÝÆ÷¡£Äã¿ÉÒÔ°ÑÊý¾Ý·Åµ½Application»òSession¶ÔÏóÖУ¬ÕâЩÊý¾Ý¾Í»áÔÚÕû¸öHTTPµ÷ÓÃÖÐÒ»Ö±´æÔÚ¡£Ã¿¸öÓû§ÓÐ×Ô¼ºµÄSession¶ÔÏóÖеÄÊý¾Ý£¬¶øApplication¶ÔÏóÖеÄÊý¾Ý¿ÉÒÔÔÚËùÓÐÓû§Öй²Ïí¡£ 

¡¡¡¡Ó¦¸ÃÔÚʲôʱºò½«Êý¾Ý×°ÈëApplication»òSessionÖÐÄØ£¿Í¨³££¬Êý¾ÝÔÚApplication»òSessionÆô¶¯µÄʱºò×°Èë¡£ÒªÏëÔÚApplication»òSessionÆô¶¯µÄʱºò×°ÈëÊý¾Ý£¬ÐèÒª·Ö±ðÔÚGlobal.asaµÄApplication_OnStart()»òSession_OnStart()ÖÐÌí¼ÓÊʵ±µÄ´úÂ룻Èç¹ûGlobal.asaÖÐûÓÐÕâÁ½¸öº¯Êý£¬Äã¿ÉÒÔÊÖ¹¤Ìí¼Ó¡£Ò²¿ÉÒÔÔÚÊý¾ÝµÚÒ»´ÎʹÓõÄʱºò½«Æä×°Èë¡£ÒªÏëÕâÑù£¬Ó¦¸ÃÔÚASPÒ³ÃæÖÐдһЩ´úÂ루»òÊÇдһ¸ö¿ÉÖØÓõĽű¾º¯Êý£©À´¼ì²éÊý¾ÝÊÇ·ñ´æÔÚ²¢ÇÒÈç¹ûÊý¾Ý²»´æÔÚÔò½«Æä×°ÈëÄÚ´æ¡£ÏÂÃæÊÇÒ»¸ö¾­µäµÄÐÔÄܵ÷Õû¼¼Êõ--Lazy Evaluation£º 

<% 
Function GetEmploymentStatusList 
¡¡Dim d 
¡¡d = Application("EmploymentStatusList") 
¡¡If d = "" Then 
¡¡¡¡¡¡' FetchEmploymentStatusList function (not shown) 
¡¡¡¡¡¡' fetches data from DB, returns an Array 
¡¡¡¡¡¡d = FetchEmploymentStatusList() 
¡¡¡¡¡¡Application("EmploymentStatusList") = d 
¡¡End If 
¡¡GetEmploymentStatusList = d 
End Function 
%> 

Similar functions could be written for each chunk of data needed. 

In what format should the data be stored? Any variant type can be 
stored, since all script variables are variants. For instance, you 
can store strings, integers, or arrays. Often, you¡¯ll be storing the 
contents of an ADO recordset in one of these variable types. To get 
data out of an ADO recordset, you can manually copy the data into 
VBScript variables, one field at a time. It¡¯s faster and easier to 
use one of the ADO recordset persistence functions GetRows(),GetString 
() or Save() (ADO 2.5). Full details are beyond the scope of this 
article, but here¡¯s a function that demonstrates using GetRows() to 
return an array of recordset data: 

' »ñÈ¡¼Ç¼¼¯£¬·µ»ØÊý×é 
Function FetchEmploymentStatusList 
¡¡Dim rs 
¡¡Set rs = CreateObject("ADODB.Recordset") 
¡¡rs.Open "select StatusName, StatusID from EmployeeStatus", _ 
¡¡¡¡¡¡¡¡¡¡"dsn=employees;uid=sa;pwd=;" 
¡¡FetchEmploymentStatusList = rs.GetRows() ' ½«¼Ç¼¼¯ÓÃÊý×é·µ»Ø 
¡¡rs.Close 
¡¡Set rs = Nothing 
End Function 

A further refinement of the above might be to cache the HTML for the 
list, rather than the array. Here¡¯s a simple sample: 

' »ñÈ¡¼Ç¼¼¯£¬·µ»ØHTML OptionÁбí 
Function FetchEmploymentStatusList 
¡¡Dim rs, fldName, s 
¡¡Set rs = CreateObject("ADODB.Recordset") 
¡¡rs.Open "select StatusName, StatusID from EmployeeStatus", _ 
¡¡¡¡¡¡¡¡¡¡"dsn=employees;uid=sa;pwd=;" 
¡¡s = "<select name=""EmploymentStatus">" & vbCrLf 
¡¡Set fldName = rs.Fields("StatusName") ' ADO ×ֶΰ󶨠
¡¡Do Until rs.EOF 
¡¡¡¡s = s & " <option>" & fldName & "</option>" & vbCrLf 
¡¡¡¡rs.MoveNext 
¡¡Loop 
¡¡s = s & "</select>" & vbCrLf 
¡¡rs.Close 
¡¡Set rs = Nothing ' ÊÍ·Års 
¡¡FetchEmploymentStatusList = s ' ÓÃ×Ö·û´®·½Ê½·µ»ØÊý¾Ý 
End Function 

¡¡¡¡ÔÚÕýÈ·Çé¿öÏ£¬Äã¿ÉÒÔ½«ADO¼Ç¼¼¯±¾Éí»º´æÔÚApplication»òSession·¶Î§£¬µ«±ØÐëÂú×ãÏÂÃæÁ½¸öÌõ¼þ£º .ADO±ØÐë±»±ê¼ÇΪ×ÔÓÉÏß³ÌÄ£ÐÍ£¨Free-threaded) .±ØÐëʹÓÃÎÞÁ¬½Ó¼Ç¼¼¯ 

¡¡¡¡Èç¹û²»ÄÜÂú×ãÉÏÃæÁ½¸öÌõ¼þ£¬Ò»¶¨²»Òª»º´æ¼Ç¼¼¯¡£ÔÚÏÂÃæµÄ¡°²»Áé»îµÄ×é¼þ¡±ºÍ¡°²»Òª»º´æConnection¡±Á½¸ö¼¼ÇÉÖУ¬ÎÒÃǽ«ÌÖÂÛÔÚApplicationºÍSessionÖб£´æCOM¶ÔÏóµÄΣÏÕÐÔ¡£ 

¡¡¡¡µ±ÄãÔÚApplication»òSessionÖд洢Êý¾Ýºó£¬Êý¾Ý½«Ò»Ö±±£´æ£¬ÖªµÀÄãµÄ³ÌÐò¸Ä±äËü£¬»òÊÇSession¹ýÆÚ£¬»òÊÇWeb·þÎñÖØÐÂÆô¶¯¡£What if the data needs to be updated?ÊÖ¹¤Ë¢ÐÂApplicationÊý¾Ý£¬¿ÉÒÔµ÷ÓÃÖ»ÓйÜÀíÔ±²Å¿É·ÃÎʵÄÓÃÀ´Ë¢ÐÂÊý¾ÝµÄASPÒ³Ãæ£»»òÕß¶¨ÆÚµÄͨ¹ýÒ»¸öº¯ÊýÀ´ÖÜÆÚÐԵĸüÐÂÊý¾Ý¡£ÏÂÃæµÄÀý×ÓÔÚ»º´æÊý¾ÝÖб£´æÁËÒ»¸öʱ¼ä´Á£¬È»ºóÒ»¶Îʱ¼äÖ®ºó×Ô¶¯Ë¢ÐÂÊý¾Ý¡£ 

<% 
Const UPDATE_INTERVAL = 300 ' Ë¢Ð¼ä¸ô£¬µ¥Î»ÊÇÃë 

'·µ»Ø¹ÍԱ״̬Áбí 
Function GetEmploymentStatusList 
¡¡UpdateEmploymentStatus 
¡¡GetEmploymentStatusList = Application("EmploymentStatusList") 
End Function 

'ÖÜÆÚÐԵĸüлº´æÖеÄÊý¾Ý 
Sub UpdateEmploymentStatusList 
¡¡Dim d, strLastUpdate 
¡¡strLastUpdate = Application("LastUpdate") 
¡¡If (strLastUpdate = "") Or _ 
¡¡¡¡¡¡¡¡(UPDATE_INTERVAL < DateDiff("s", strLastUpdate, Now)) Then 

¡¡¡¡¡¡' Note: two or more calls might get in here. This is okay and 
will simply 
¡¡¡¡¡¡' result in a few unnecessary fetches (there is a workaround 
for this) 

¡¡¡¡¡¡' FetchEmploymentStatusList function (not shown) 
¡¡¡¡¡¡' fetches data from DB, returns an Array 
¡¡¡¡¡¡d = FetchEmploymentStatusList() 

¡¡¡¡¡¡' ¸üÐÂApplication¶ÔÏóʱÓÃApplication.Lock()À´±£³ÖÊý¾ÝÒ»ÖÂÐÔ 
¡¡¡¡¡¡Application.Lock 
¡¡¡¡¡¡Application("EmploymentStatusList") = Events 
¡¡¡¡¡¡Application("LastUpdate") = CStr(Now) 
¡¡¡¡¡¡Application.Unlock 
¡¡End If 
End Sub 

¡¡¡¡ÒªÖªµÀÔÚSession»òApplicationÖлº´æ´óÊý×é²¢²»ÊÇÒ»¸öÌ«ºÃµÄ·½·¨¡£ÔÚ·ÃÎÊÊý×éÖеÄÈκÎÔªËØÖ®Ç°£¬½Å±¾½âÊÍÆ÷¶¼ÐèÒªÉú³ÉÒ»¸öÁÙʱµÄÕû¸öÊý×éµÄ¸±±¾¡£ÀýÈ磬Èç¹ûÄ㻺´æÁËÒ»¸ö100,000¸ö×Ö·û´®ÔªËصÄÊý×飬ÓÃÀ´½«ÓÊÕþ±àÂëºÍµ±µØµÄÌìÆø¶ÔÓ¦Ò»Ò»ÆðÀ´£¬ÔÚ·ÃÎÊÊý×éÖÐÈκÎÒ»¸ö×Ö·û´®Ö®Ç°£¬ASP½âÊÍÆ÷Ê×ÏȱØÐë¸´ÖÆËùÓеÄ100,000¸öÌìÆøÇé¿öÊý¾Ýµ½Ò»¸öÁÙʱÊý×éÖС£ÔÚÕâÖÖÇé¿öÏ£¬¿ª·¢Ò»¸ö×é¼þÀ´´¢´æÌìÆøÇé¿öÊý¾Ý»òÊÇʹÓôʵ䣨Dictioary£©¶ÔÏó¸üΪºÏÊÊÒ»µã¡£²»¹ý£¬Ò²²»ÒªÒòСʧ´ó£¬Êý×é¶ÔÏóµÄµÄ²éÕÒËٶȸü¿ì¡£Ë÷ÒýÒ»¸ö´Êµä±ÈË÷ÒýÒ»¸öÊý×éÂý¡£Äã¿ÉÒÔÒòÄãµÄÇé¿ö¶øÒË£¬Ñ¡ÔñºÏÊʵÄÊý¾Ý½á¹¹¡£

¡¡¡¡¼¼ÇÉ3£ºÔÚÓ²ÅÌÉÏ»º´æÊý¾ÝºÍHTMLÒ³Ãæ 

¡¡¡¡ÓÐʱ£¬¿ÉÄÜÓÐÌ«¶àµÄÊý¾Ý»º´æÔÚÄÚ´æÖС£¡°Ì«¶à¡±ÊǸöÄ£ºýµÄ˵·¨£¬ËüÈ¡¾öÓëWeb·þÎñÆ÷µÄÄÚ´æ´óС¡¢»º´æÏîµÄÊýÄ¿ºÍÕâЩ»º´æÏî±»·ÃÎÊµÄÆµ¶È¡£ÎÞÂÛÈçºÎ£¬Èç¹ûÌ«¶àµÄÊý¾ÝÔÚÄÚ´æÖлº´æ£¬¿ÉÒÔ¿¼Âǽ«Êý¾ÝÓÃÎı¾»òXMLÎļþ»º´æµ½Web·þÎñÆ÷µÄÓ²ÅÌÉÏ¡£¿ÉÒÔ½«»º´æµ½Ó²ÅÌÉϺ͵½ÄÚ´æÖнáºÏÆðÀ´£¬Õë¶ÔÄãµÄÕ¾µã£¬ÕÒµ½×îÓÅ»¯µÄ²ßÂÔ¡£ 

¡¡¡¡×¢Ò⣬µ±ÎÒÃDzâÁ¿µ¥Ò»ASPÒ³ÃæµÄÐÔÄÜʱ£¬´ÓÓ²ÅÌÉ϶ÁÈ¡Êý¾Ý¿ÉÄܱȴÓÊý¾Ý¿âÖжÁÈ¡Âý¡£µ«ÊÇ£¬»º´æÄܹ»¼õÉÙÊý¾Ý¿âºÍÍøÂçµÄ¸ºÔØ¡£Ôڸ߸ºÔصÄÇé¿öÏ£¬Õ⽫´ó´óÌá¸ß×ÜÌåÍÌÍÂÁ¿¡£µ±±»»º´æµÄÊý¾ÝÊǷdz£¸´ÔӵIJéѯ£¬±ÈÈç¶à±íÁ¬½Ó»òÊÇÒ»¸ö¸´ÔӵIJéѯ¹ý³Ì»òÒ»¸ö·Ç³£´óµÄ¼Ç¼¼¯£¬»º´æµÄЧ¹û½«·Ç³£Ã÷ÏÔ¡£ 

¡¡¡¡ASPºÍCOMÌṩÁËһЩ¹¤¾ßÀ´½¨Á¢»ùÓÚÓ²Å̵Ļº´æ·½°¸¡£ADO Recordset¶ÔÏóµÄSaveºÍOpen·½·¨¿ÉÒÔ±£´æºÍ×°Èëµ½´ÅÅÌÉÏ¡£»¹ÓÐһЩÓÃÀ´·ÃÎÊÎļþµÄ×é¼þ£º .Scripting.FileSystemObjectÔÊÐíÄã´´½¨¡¢¶ÁÈ¡ºÍдÈëÎļþ¡£ .MSXML£¬Í¬IEÀ¦°óµÄ΢ÈíµÄXML½âÊÍÆ÷£¬Ö§³Ö±£´æºÍ×°ÈëXMLÎĵµ¡£ .LookupTable¶ÔÏóÊÇÒ»¸öÓÃÀ´´Ó´ÅÅÌ×°Èë¼òµ¥ÁбíµÄ·Ç³£ºÃµÄÑ¡Ôñ¡£ 

¡¡¡¡×îºó£¬½«Êý¾Ý±íÏÖ»º´æÔÚÓ²ÅÌÉÏ£¬±È»º´æÊý¾Ý±¾ÉíÒªºÃ¡£Éú³ÉµÄHTML¿ÉÒÔÒ»¸ö.htm»ò.aspÎļþ±£´æÔÚÓ²ÅÌÉÏ£»³¬Á¬¿ÉÒÔÖ±½ÓÖ¸ÏòÄÇЩÎļþ¡£ÄãÒ²¿ÉÒÔÓÃһЩÉÌÒµ¹¤¾ß£¬ÈçXBuilderºÍSQL Server»¥Á¬Íø·¢²¼ÌØÐÔ£¬À´Éú³ÉºÍ´¦ÀíHTMLÎļþ¡£ÁíÍ⣬Ҳ¿ÉÒÔÓÃ#include½«HTMLƬ¶Î°üº¬µ½ASPÎļþÖУ»»¹¿ÉÒÔÓÃFileSystemObjectÀ´¶ÁÈ¡HTMLÎļþ¡£

¡¡¡¡¼¼ÇÉ4£º±ÜÃâÔÚApplication»òSession¶ÔÏóÖлº´æCOM¶ÔÏó 

¡¡¡¡ËäÈ»ÔÚApplication»òSession¶ÔÏóÖлº´æÊý¾ÝÊÇÒ»¸öºÃ×¢Ò⣬µ«»º´æCOM¶ÔÏó¿ÉÄÜ´øÀ´ÑÏÖØµÄºó¹û¡£ÔÚApplication»òSession¶ÔÏóÖлº´æ³£ÓÃCOM¶ÔÏó·Ç³£ÓÕÈË£¬µ«·Ç³£²»ÐÒ£¬ºÜ¶àCOM¶ÔÏ󣬰üÀ¨ÄÇЩÓÃVB 6.0»òÔçÆÚ°æ±¾Ð´µÄ×é¼þ£¬Èç¹û±»»º´æµ½ 
Application»òSession¶ÔÏóÖн«»áµ¼ÖÂÑÏÖØµÄÐÔÄÜÆ¿¾±¡£ 

¡¡¡¡ÌØ±ðµØ£¬ËùÓзÇAgileµÄ×é¼þ±»»º´æµ½Session»òApplicationÖÐʱ£¬¶¼½«²úÉúÐÔÄÜÆ¿¾±¡£Agile×é¼þÊÇÖ¸¾ÛºÏÁËFree-threaded marshaler(FTM)²¢ÇÒÏß³ÌÄ£ÐÍÊÇBoth 
(ThreadingModel=Both)£¬»òÏß³ÌÄ£ÐÍÊÇNeutral(NeturalгöÏÖÔÚWindows 2000 
ºÍCOM+ÖУ©µÄ×é¼þ¡£ÏÂÃæµÄ×é¼þ¶¼ÊÇ·ÇAgileµÄ£º 


¡¡¡¡×ÔÓÉÏß³ÌÄ£ÐÍ×é¼þ£¨³ý·ÇËûÃǾۺÏÁËFTM£© 
¡¡¡¡ApartmentÏß³ÌÄ£ÐÍ×é¼þ 
¡¡¡¡µ¥Ïß³Ì×é¼þ 

¡¡¡¡Configured×é¼þ£¨MTS/COM+¿âºÍ·þÎñ°ü/Ó¦Óã©ÊÇ·ÇAgileµÄ£¬³ý·ÇËüÃÇÊÇNeutralÏß³ÌÄ£Ð͵ġ£ApartmentÏß³ÌÄ£ÐÍ×é¼þºÍÆäËû·ÇAgile×é¼þ×îºÃÊǹ¤×÷ÔÚÒ³Ãæ·¶Î§ÄÚ£¨¾ÍÊÇ˵£¬ËûÃÇÔÚÒ»¸öµ¥Ò»ASPÒ³ÃæÖд´½¨ºÍÏú»Ù£©¡£ 

¡¡¡¡ÔÚIIS 4.0ÖУ¬Ïß³ÌÄ£ÐÍÊÇBothµÄ×é¼þ±»¿´×÷ÊÇAgileµÄ£¬µ«ÔÚIIS 5.0ÖУ¬ËûÃDz»ÔÙÂú×ãAgileµÄÌõ¼þ¡£×é¼þÏß³ÌÄ£ÐͱØÐëÊÇBothµÄ£¬²¢ÇÒ¾ÛºÏÁËFTM£¬²Å±»¿´×÷AgileµÄ¡£Èç¹ûÊÔͼ½«Ò»¸öÓÃServer.CreateObject´´½¨µÄ·ÇAgile×é¼þ´æ´¢µ½ 
Application¶ÔÏóÖÐʱ£¬IIS 5.0½«»áÅ׳öÒ»¸ö´íÎó¡£ 

¡¡¡¡µ±ADO×é¼þ±»±ê¼ÇΪ×ÔÓÉÏß³ÌÄ£ÐÍʱ£¬ADO¼Ç¼¼¯¶ÔÏó¿ÉÒÔ°²È«µØ´æ´¢¡£¿ÉÒÔÓÃMakfre15.bat£¬Ò»°ãÊÇ·ÅÔÚ//program Files/Common/System/ADOÕâ¸öÎļþ¼ÐÀ½«ADO×é¼þ±ê¼ÇΪ×ÔÓÉÏß³ÌÄ£ÐÍ¡£ÓÐÒ»µãҪעÒ⣺µ±ÓÃAccess×÷ºǫ́Êý¾Ý¿âʱ£¬ADO²»Äܱ»±ê¼ÇΪ×ÔÓÉÏß³ÌÄ£ÐÍ¡£´Êµä£¨Dictionary£©×é¼þÒ²ÊÇAgile¶ÔÏó¡£

¡¡¡¡¼¼ÇÉ5£º²»Òª»º´æÊý¾Ý¿âÁ¬½Ó 

¡¡¡¡»º´æADO Connection¶ÔÏóÊÇÒ»¸ö²»ºÃµÄ²ßÂÔ¡£Èç¹ûÒ»¸öConnection¶ÔÏó±»´æ´¢ÔÚ 
Application¶ÔÏóÖв¢±»ËùÓÐÒ³ÃæÊ¹Óã¬ËùÓÐÒ³Ãæ¾Í»áÕù×ÅʹÓÃÕâ¸öÁ¬½Ó¡£Èç¹û 
Connection¶ÔÏó±»´æ´¢ÔÚSession¶ÔÏóÖУ¬¾ÍҪΪÿ¸öÓû§´´½¨Ò»¸öÊý¾Ý¿âÁ¬½Ó£¬Õâ¾ÍÏû¼õÁËÁ¬½Ó³ØµÄ×÷Ó㬲¢ÇÒÔö´óÁËWeb·þÎñÆ÷ºÍÊý¾Ý¿â·þÎñÆ÷µÄѹÁ¦¡£¿ÉÒÔÓÃÔÚÿ¸öʹÓÃADOµÄASPÒ³´´½¨ºÍÊÍ·ÅADO¶ÔÏóÀ´Ìæ´ú»º´æÊý¾Ý¿âÁ¬½Ó£»ÒòΪIISÄÚ½¨ÁËÊý¾Ý¿âÁ¬½Ó³Ø£¬ËùÒÔÕâÖÖ·½·¨·Ç³£ÓÐЧ¡£ 

¡¡¡¡¼ÈÈ»ÓÐÁ¬½ÓµÄ¼Ç¼¼¯±£´æÁËÒ»¸öÊý¾Ý¿âÁ¬½ÓµÄÒýÓã¬Òò´ËÒ²²»Ó¦¸ÃÔÚApplication»òSession¶ÔÏóÖб£´æÓÐÁ¬½ÓµÄ¼Ç¼¼¯¡£µ«ÊÇ£¬Äã¿ÉÒÔ°²È«µÄ»º´æÎÞÁ¬½ÓµÄ¼Ç¼¼¯£¬ÒòΪËü²¢²»°üº¬µ½Êý¾ÝÁ¬½ÓµÄÒýÓá£ÒªÏë¹Ò¶ÏÒ»¸ö¼Ç¼¼¯£¬¿ÉÒÔ²ÉÈ¡ÈçÏÂÁ½¸ö²½Ö裺 

¡¡¡¡Set rs = Server.CreateObject("ADODB.RecordSet") 
¡¡¡¡rs.CursorLocation = adUseClient¡¡' µÚÒ»²½ 

¡¡¡¡rs.Open strQuery, strProv 

¡¡¡¡' ½«¼Ç¼¼¯Í¬Êý¾ÝÌṩÕߺÍÊý¾ÝÔ´¹Ò¶Ï 
¡¡¡¡rs.ActiveConnection = Nothing¡¡¡¡'µÚ¶þ²½ 

¡¡¡¡¼¼ÇÉ6£ºÕýÈ·µØÊ¹ÓÃSession¶ÔÏó 

¡¡¡¡ÎÒÃÇÒѾ­Ìáµ½ÁËÔÚApplicationºÍSessionÖлº´æÊý¾ÝµÄºÃ´¦£¬ÏÂÃæÎÒÃǽ«ËµÒ»Ð© 
Session¶ÔÏóµÄȱµã¡£ÔÚ·±Ã¦µÄÕ¾µãÉÏʹÓÃSessionÓÐһЩ²»ÀûµÄµØ·½¡£·±Ã¦ÊÇÖ¸Õâ¸öÕ¾µãÿÃëÖÓÒª´¦ÀíÊýÒ԰ټƵÄÒ³ÃæÇëÇó»òͬʱÁ¬½ÓÊýÒÔǧ¼ÆµÄ²¢·¢Óû§¡£Õâ¸ö¼¼ÇɶÔÄÇЩ±ØÐëҪˮƽÉìËõµÄÕ¾µã--¾ÍÊÇ˵£¬ÕâЩվµãÓöà¸ö·þÎñÆ÷À´ÊµÏÖ¸ºÔØÆ½ºâ»òÈÝ´í--·Ç³£ÖØÒª¡£¶ÔСµÄÕ¾µã£¬È繫˾ÄÚÍø£¬SessionÏà¶ÔÓëËûÏûºÄµÄ×ÊÔ´À´Ëµ£¬»¹ÊÇÖµµÃÒ»Óõġ£ 

¡¡¡¡ASP×Ô¶¯ÎªÃ¿¸ö·ÃÎÊWeb·þÎñÆ÷µÄÓµ»¤´´½¨Ò»¸öSession¶ÔÏó¡£Ã¿¸öSession´óÔ¼ÏûºÄ10KµÄ×ÊÔ´£¬²¢Ê¹ËùÓеÄÇëÇó¶¼ÂýÁËÒ»µã¡£Õâ¸öSessionÔÚ³¬Ê±ÖÜÆÚÄÚÒ»Ö±´æÔÚ£¬Õâ¸öÖÜÆÚÒ»°ãÊÇ20·ÖÖÓ¡£¶ÔÓÚSessionÀ´Ëµ×î´óµÄÎÊÌâ²»ÊÇÐÔÄܶøÊÇÉìËõÄÜÁ¦¡£Session²»ÊÇ¿çWeb·þÎñÆ÷µÄ£»Ò»µ©Ò»¸öSessionÔÚij¸ö·þÎñÆ÷ÉÏ´´½¨£¬ËüµÄÊý¾Ý¶¼±£´æÔÚÄǶù¡£ 
¡¡¡¡ÕâÒâζ×ÅÈç¹ûÄãÒªÔÚ¶à¸öWeb·þÎñÆ÷»·¾³ÖÐʹÓÃSession£¬Äã±ØÐëÉè¼ÆÒ»Ì×ÄÜʹÓû§×ÜÊÇ·ÃÎÊËüµÄSession¶ÔÏóËùÔÚµÄWeb·þÎñÆ÷µÄ²ßÂÔ£»¼´½«Ò»¸öÓû§Õ³µ½Ò»¸öWeb·þÎñÆ÷ÉÏ¡£Èç¹ûWeb·þÎñÆ÷±ÀÀ££¬ÒòΪSession²»ÊÇÓÀ¾Ã±£´æÔÚ´ÅÅÌÉϵĶö£¬ËùÒÔÈ«²¿¡°Õ³¡± 
¡¡¡¡ÔÚÆäÉϵÄÓû§µÄSession״̬¶¼½«¶ªÊ§¡£ÊµÏÖ¡°Õ³Session(sticky session)¡±µÄ²ßÂÔ°üÀ¨Ó²¼þºÍÈí¼þ·½°¸£¬ÈçWindows 2000 Advanced ServerÖеÄNetwork Load BalancingºÍCiscoµÄLocal Director¡£µ±È»£¬ÕâЩ·½°¸²¢²»ÍêÃÀ£¬¶¼ÒªËðʧһЩ¿ÉÉìËõÐÔ¡£Application¶ÔÏóÒ²²»ÊÇ¿ç·þÎñÆ÷µÄ£¬Èç¹ûÄãÏëÔÚ¶à·þÎñÆ÷¼ä¹²ÏíºÍ¸üÐÂApplicationÊý¾Ý£¬Äã±ØÐëʹÓÃÒ»¸öºǫ́Êý¾Ý¿â¡£µ«ÎÞÂÛÈçºÎ£¬Ö»¶ÁApplicationÊý¾ÝÔÚ¶à·þÎñÆ÷»·¾³Öл¹ÊÇÊ®·ÖÓÐÓõġ£ 

¡¡¡¡¾ø´ó¶àÊýÈÎÎñÓÅÏÈ£¨mission-critical£©µÄÕ¾µã¶¼ÏëÔÚÖÁÉÙÁ½Ì¨Web·þÎñÆ÷ÉÏ·¢²¼--Èç¹ûûÓбÈÑÓ³¤Õý³£ÔËÐÐʱ¼ä¸üÖØÒªµÄÀíÓɵϰ¡£Òò´Ë£¬ÔÚÉè¼Æ½×¶Î£¬Äã¾ÍҪʵÏÖ¡°Õ³Session¡±£¬»òÊǼòµ¥µØ±ÜÃâSessionºÍÆäËû½«Óû§×´Ì¬±£´æÔÚÒ»¸ö¶ÀÁ¢Web·þÎñÆ÷ÉϵÄ״̬¹ÜÀí¼¼Êõ¡£ 

¡¡¡¡Èç¹û²»Ê¹ÓÃSession£¬¾Í½«ËüÃǹرգ»¿ÉÒÔͨ¹ýInternet Service Manager£¨²Î¿´ISMÎĵµ£©¹Ø±ÕÄãµÄÓ¦ÓõÄSession¹¦ÄÜ¡£Èç¹û¾ö¶¨Ê¹ÓÃSession£¬¾ÍÒªÓÃһЩ·½·¨½«ËûÃǶÔÐÔÄܵÄÓ°Ïì¼õµ½×îС¡£¿ÉÒÔ½«²»ÐèÒªSessionµÄÄÚÈÝ£¨Èç°ïÖú´°¿ÚµÈ£©ÒƵ½Ò»¸öµÄ¹Ø±ÕÁËSessionµÄASPÓ¦ÓÃÖС£Èç¹ûij¸öµ¥Ò»Ò³Ãæ²»ÐèÒªSession£¬¿ÉÒÔ½«ÏÂÃæµÄÓï¾ä·ÅÔÚÒ³ÃæµÄ¶¥²¿À´½ûÖ¹Session¹¦ÄÜ£º 

<% @EnableSessionState=False %> 

¡¡¡¡Ê¹ÓøÃÓï¾ä»¹ÓÐÒ»¸öÔ­ÒòÊÇSessionÔÚÖ¡Öлá²úÉúÒ»¸öÓÐȤµÄÎÊÌâ¡£ASP±£Ö¤ÈκÎʱºòÒ»¸ö»á»°Ö»ÓÐÒ»¸öÇëÇó£¬Õâ¾Íµ¼ÖÂÈç¹ûä¯ÀÀÆ÷ͬʱÇëÇó¶à¸öÒ³Ãæ£¬Í¬Ò»Ê±¿Ì½«Ö»ÓÐÒ»¸öASPÇëÇóÄܹ»·ÃÎÊSession£»Õâ±ÜÃâÁË·ÃÎÊSession¶ÔÏóʱ²úÉúµÄ¶àÏß³ÌÎÊÌ⣻µ«ºÜ²»ÐÒ£¬Ò»¸öÖ¡ÖеĶà¸öÒ³ÃæÖ»ÄÜ˳ÐòµÄÉú³É£¬Ò»¸ö½Ó×ÅÒ»¸ö£¬¶ø²»ÊDZø·¨¡£Óû§¿ÉÄÜ»áΪ¶à¸öÖ¡µÈ´ý½Ï³¤Ê±¼ä¡£ËùÒÔÈç¹ûÖ¡ÖеÄij¸öÒ³ÃæÃ»ÓÐʹÓÃSession£¬¾ÍÔÚÒ³Ãæ¶¥²¿·ÅÖÃ<% @EnableSessionState=False %>Óï¾ä¡£ 

¡¡¡¡×÷ΪʹÓÃSession¶ÔÏóµÄÌæ´ú£¬»¹ÓкܶàÆäËûµÄ·½·¨À´¹ÜÀí»á»°×´Ì¬¡£¶ÔС¹æÄ£µÄ״̬£¨Ð¡ÓÚ4KB£©£¬ÍƼöʹÓÃCookies£¬QueryString±äÁ¿ºÍÒþ²Ø±íµ¥±äÁ¿¡£¶Ô´óÁ¿Êý¾Ý£¬È繺ÎïÐÅÏ¢£¬Ò»¸öºǫ́Êý¾Ý¿â¿ÉÄÜÊǺܺõÄÑ¡Ôñ¡£

¡¡¡¡¼¼ÇÉ7£º½«´úÂë·â×°µ½COM¶ÔÏóÖР

¡¡¡¡Èç¹ûÓкܶàVBScript»òJScript´úÂ룬¿ÉÒÔͨ¹ý½«´úÂë·â×°µ½COM¶ÔÏóÖÐÀ´Ìá¸ßÐÔÄÜ¡£ 
±àÒë¹ýµÄ´úÂëͨ³£±È½âÊÍ´úÂëÔËÐеÿ졣COM¶ÔÏó¿ÉÒÔͨ¹ý¡°Ç°ÆÚ°ó¶¨¡±À´·ÃÎÊÆäËûCOM¶ÔÏó£¬Õâ±È½Å±¾Ê¹Óõġ°ºóÆÚ°ó¶¨¡±¸ü¸ßЧ¡£ 

¡¡¡¡ÏÂÃæÊǽ«´úÂëÂë·â×°µ½COM¶ÔÏóÖеÄÓŵ㣨²»½ö½öÊÇÐÔÄÜ£©£º 

¡¡¡¡COM¶ÔÏó¿ÉÒԺܺõؽ«ÉÌÒµÂß¼­Í¬±íÏÖÂß¼­·ÖÀë 
¡¡¡¡COM¶ÔÏóʹ´úÂë¿ÉÖØÓà
¡¡¡¡ÓÃVB£¬C»òVJдµÄ´úÂë±ÈASP´úÂë¸üÒ×µ÷ÊÔ 

¡¡¡¡COM¶ÔÏóÒ²Óв»×㣬°üÀ¨¿ª·¢ÖÜÆÚ³¤ºÍÐèÒª²»Í¬µÄ±à³Ì¾­ÑéµÈ¡£ÓÐÒ»µãÓÈÐè×¢Ò⣬·â×°ÉÙÁ¿ASP´úÂë¿ÉÄÜÔÚÐÔÄÜÉÏÊÊµÃÆä·´£»ÕâÖÖÇé¿öÏ£¬´´½¨ºÍµ÷ÓÃCOM¶ÔÏóµÄ´ú¼Û³¬¹ýÁ˱àÒë´úÂëÐÔÄÜÉϵĺô¦¡£ÈçºÎ×éºÏASP´úÂëºÍCOM×é¼þ´úÂëÀ´²úÉú×î¼ÑÐÔÄÜ£¬ÍùÍùÊǸöÁîÈËÍ·ÌÛµÄÎÊÌâ¡£×¢Ò⣬ͬWindows NT 4.0/IIS 4.0Ïà±È£¬Windows 2000/IIS 5.0Ôڽű¾ºÍADOÐÔÄÜÉÏÒѾ­´ó´óÌá¸ß¡£

¡¡¡¡¼¼ÇÉ8£º¶Ô×ÊÔ´Íí»ñÈ¡£¬ÔçÊÍ·Å 

¡¡¡¡Í¨³£Çé¿öÏ£¬Íí»ñÈ¡ºÍÔçÊÍ·Å×ÊÔ´ÊÇ×îºÃµÄ¡£Õâ²»½öÊÊÓÃÓÚCOM¶ÔÏó£¬Ò²ÊÊÓÃÓÚÎļþ¾ä±úºÍÆäËû×ÊÔ´¡£ADOÁ¬½ÓºÍ¼Ç¼¼¯ÊÇÕâÏîÓÅ»¯²ßÂÔµÄÖ÷Òª¶ÔÏó¡£µ±Ê¹ÓÃÍêÒ»¸öRecordset¶ÔÏó£¬Ó¦¸ÃÁ¢¼´½«ËüÊÍ·Å£¬¶ø²»Ó¦µÈµ½Ò³Ãæ½áÊø¡£½«VBScript±äÁ¿Éè³ÉNothingÊÇ×îºÃµÄ·½·¨¡£Í¬Ê±£¬ÊÍ·ÅÏà¹ØµÄCommandºÍConnection¶ÔÏ󣨱ðÍüÁËÔÚ½«Connection¶ÔÏóÉè³ÉNothing֮ǰµ÷ÓÃClose()·½·¨£©¡£ 

¡¡¡¡¼¼ÇÉ9£º½ø³ÌÍâÖ´ÐÐÒÔÐÔÄÜ»»È¡¿É¿¿ÐÔ 

¡¡¡¡ASPºÍMTS/COM+¶¼ÓÐÑ¡ÏîÈÃÄãÀ´Óÿɿ¿ÐÔ»»È¡ÐÔÄÜ¡£µ±½¨Á¢ºÍ·¢²¼ÄãµÄÓ¦ÓÃʱ£¬ÄãÓ¦¸ÃÀí½âÕâÏî½»Ò×µÄÄÚÄ»¡£ 

¡¡¡¡ASPÑ¡Ïî 

¡¡¡¡ASPÓ¦ÓÃÓÐÈýÖÖÔËÐз½·¨¿ÉÑ¡Ôñ¡£ÔÚIIS 5.0ÖУ¬ÒýÈë¡°·ÖÀë¼¶±ð£¨isolation level£©¡±Õâ¸öÊõÓïÀ´ÃèÊöÕâЩѡÏî¡£ÈýÖÖ·ÖÀë¼¶±ð·Ö±ðÊÇ£ºµÍ£¨Low£©£¬ÖР£¨Medium£©ºÍ¸ß£¨High£©¡£ 

¡¡¡¡µÍ·ÖÀë¼¶ ÕâÖÖ¼¶±ð±»ËùÓа汾µÄIISÖ§³Ö£¬²¢ÇÒËÙ¶ÈÒ²ÊÇ×î¿ìµÄ¡£ËüÔÚInetinfo.exe--Ö÷ÒªµÄIIS½ø³Ì--ÖÐÔËÐÐASP¡£Èç¹ûASPÓ¦ÓñÀÀ££¬IISÒ²½«±ÀÀ£¡£

¡¡¡¡£¨ÔÚIIS 4.0ÖУ¬Íø¹Ü±ØÐëÓÃÖîÈçInetMonÖ®ÀàµÄ¹¤¾ßÀ´¼àÊÓIIS£¬Ò»µ©IISÍ£Ö¹£¬ÔËÐÐÅú´¦ÀíÎļþ¡£IIS 5.0ÒýÈëÁË¡°¿É¿¿µÄÖØÆô£¨reliable restart£©¡±£¬»á×Ô¶¯ÖØÐÂÆô¶¯Ê§°ÜµÄ·þÎñÆ÷¡£

¡¡¡¡ÖзÖÀë¼¶ ´ÓIIS 5.0¿ªÊ¼ÒýÈëµÄм¶±ð£¬Ö¸½ø³ÌÍâÔËÐУ¬¼´ASPÔËÐÐÔÚIIS½ø³ÌÖ®Íâ¡£ ÔÚÖзÖÀë¼¶ÖУ¬ËùÓеÄASPÓ¦Óù²ÏíÒ»¸ö½ø³Ì¿Õ¼ä¡£°Ñ¶à¸ö½ø³ÌÍâÓ¦ÓÃÔÚͬ¸ö¿Õ¼äÖÐÔËÐУ¬¼õÉÙÁ˽ø³ÌµÄÊ÷ľ¡£ÖзÖÀë¼¶ÊÇIIS 5.0µÄĬÈϼ¶±ð¡£ 

¡¡¡¡¸ß·ÖÀë¼¶ IIS 4.0ºÍIIS 5.0¶¼Ö§³Ö¡£¸ß·ÖÀë¼¶Ò²Êǽø³ÌÍâµÄ¡£Èç¹ûASP±ÀÀ£ÁË£¬Web·þÎñÆ÷²¢²»±ÀÀ£¡£ASPÓ¦ÓûáÔÚϸöASPÇëÇóµ½´ïµÄʱºò×Ô¶¯ÖØÆô¡£Ã¿¸ö±»ÅäÖÃΪ¸ß·ÖÀë¼¶µÄASPÓ¦ÓÃÓÐ×Ô¼ºµÄ½ø³Ì¿Õ¼ä£»Õ⽫ÿ¸öASPÓ¦Óñ£»¤ÆðÀ´¡£ËüµÄȱµãÊǶÔÿ¸öASPÓ¦ÓÃÐèÒªÒ»¸ö·ÖÀëµÄ½ø³Ì£»ÕâÔö¼ÓÁËÐí¶à×ÊÔ´ÏûºÄ¡£ 

¡¡¡¡ÄÄÖÖÑ¡ÏîÊÇ×îºÃµÄ¡£ÔÚIIS 4.0ÖУ¬½ø³ÌÍâÔËÐн«Ê¹ÐÔÄܼ±¾çϽµ£»ÔÚIIS 5.0ÖУ¬Ðí¶à¸Ä½øÊ¹½ø³ÌÍâASPÓ¦ÓõĴú¼Û½µµ½×îµÍ¡£ÊÂʵÉÏ£¬ÔÚÐí¶à²âÊÔÖУ¬IIS 5.0ÖеÄASP½ø³ÌÍâÓ¦ÓñÈII4 4.0ÖеĽø³ÌÄÚÔËÐж¼¿ì¡£µ«ÎÞÂÛÈçºÎ£¬ÔÚÈÎºÎÆ½Ì¨ÉÏ£¬»¹Êǽø³ÌÄÚ£¨µÍ·ÖÀë¼¶£©ÔËÐÐÄÜ´øÀ´×î¼ÑµÄÐÔÄÜ¡£È»¶ø£¬ÔÚÏà¶ÔµÍµã»÷ÂÊ»òµÍ×î´óÍÌÍÂÁ¿µÄÇé¿öÏ£¬µÍ·ÖÀë¼¶²»»á´øÀ´ÈκÎÒæ´¦£»Òò´Ë£¬³ý·Çÿ¸öWeb·þÎñÆ÷ÐèÒªÓ¦¸¶³ÉǧÉϰٵÄÒ³ÃæÇëÇ󣬲»È»Äã²»»áÐèÒªÓõͷÖÀë¼¶¡£Í¨³££¬ÐèÒªÔÚ¶à¸öÅäÖÃϽøÐвâÊÔ£¬²ÅÄܾö¶¨Ê¹ÓÃÄÄÖÖÅäÖá£

¡¡¡¡×¢Ò⣺µ±ÔÚ½ø³ÌÍâÔËÐÐASPÓ¦ÓÃʱ£¨ÖлòµÍ·ÖÀë¼¶£©£¬ASPÓ¦ÓÃÔËÐÐÔÚNT 4ÉϵÄMTSÖлòWindows 2000µÄCOM+ÖУ»¾ÍÊÇ˵£¬ÔÚNT4ÖУ¬ASPÓ¦ÓÃÔËÐÐÔÚMtx.exeÖУ»ÔÚ 
Windows 2000ÖУ¬ASPÓ¦ÓÃÔËÐÐÔÚDllHost.exeÖС£Äã¿ÉÒÔÔÚÈÎÎñ¹ÜÀíÆ÷Öп´µ½ÕâЩ½ø³ÌÔÚÔËÐС£ 

¡¡¡¡COMÑ¡Ïî 

¡¡¡¡COM×é¼þÒ²ÓÐÈýÖÖÅäÖÃÑ¡Ïµ«²»ÍêÈ«¶ÔÓ¦ÓÚASPµÄÑ¡Ïî¡£COM×é¼þ¿ÉÒÔÊÇ¡°ÎÞÅäÖõģ¨Unconfigured£©¡±¡¢×÷Ϊһ¸ö¿âÓ¦Óã¨Library Application£©»òÊÇ×÷Ϊһ¸ö·þÎñÓ¦Óã¨Server Application£©¡£¡°ÎÞÅäÖõġ±Òâζ×Å×é¼þ²»×¢²áµ½COM+ÖУ¬×é¼þ½«ÔÚµ÷ÓÃÕß½ø³Ì¿Õ¼äÖÐÔËÐУ»¼´¡°½ø³ÌÄÚ¡±¡£¿âÓ¦ÓÃÒ²Êǽø³ÌÄڵ쬵«¿ÉÒÔ´ÓCOM+µÄ·þÎñ£¬È簲ȫ¡¢ÊÂÎñºÍÉÏÏÂÎÄÖ§³Ö£¬ÖлñÒæ¡£·þÎñÓ¦ÓÃÔò±»ÅäÖóÉÔËÐÐÔÚ×Ô¼ºµÄ½ø³Ì¿Õ¼äÄÚ¡£ 

¡°ÎÞÅäÖᱱȿâÓ¦ÓÃÓÐÒ»µãÓÅÔ½ÐÔ£»¶ø¿âÓ¦ÓñȷþÎñÓ¦ÓÃÔÚÐÔÄÜÉϸüÓÅÔ½¡£ÕâÊÇÒòΪ¿âÓ¦ÓúÍASPÊÇÔÚͬһ¸ö½ø³ÌÄڵ쬶ø·þÎñÓ¦ÓÃÊÇÔËÐÐÔÚ×Ô¼ºµÄ½ø³Ì¿Õ¼äÀïµÄ¡£½ø³Ì¼äµ÷ÓñȽø³ÌÄÚµ÷ÓõĴú¼Û¸ß¡£Í¬Ñù£¬ÔÚ½ø³Ì¼ä´«µÝÈç¼Ç¼¼¯ÕâÑùµÄÊý¾Ý£¬ÐèÒªÔÚÁ½¸ö½ø³Ì¼ä¸´ÖÆËùÓеÄÊý¾Ý¡£ 

¡¡¡¡È±ÏÝ£¡µ±Ê¹ÓÃCOM·þÎñÓ¦ÓÃʱ£¬ÒªÏëÔÚASPºÍCOM¼ä´«ËÍÊý¾Ý£¬±ØÐë±£Ö¤¶ÔÏóʵÏÖÁË¡°°´ÖµÅÅÁУ¨marshall-by-valu£©¡±£¬»òÕß˵MBV¡£ÊµÏÖÁËMBVµÄ¶ÔÏó½«×ÔÉí´ÓÒ»¸ö½ø³Ì¸´ÖƵ½ÁíÒ»¸ö½ø³Ì¡£Õâ±ÈÏÂÃæµÄ·½·¨ºÃ£º¶ÔÏóÁôÔÚ´´½¨Õß½ø³Ì£¬ÆäËû½ø³ÌÖØ¸´µ÷Óô´½¨½ø³ÌÀ´Ê¹ÓöÔÏó¡£ÎÞÁ¬½ÓADO¼Ç¼¼¯ÊÇMBV£¬ÓÐÁ¬½Ó¼Ç¼¼¯¾Í²»ÊÇ¡£ 

¡¡¡¡Scripting.Dictonary¶ÔÏóûÓÐʵÏÖMBV£¬²»ÄÜÔÚ½ø³ÌÖ®¼ä´«µÝ¡£×îºó£¬¶ÔVB³ÌÐòÔ±µÄÒ»¸öÌáʾ£ºMBV²»ÊÇͨ¹ýÓÃByValÀ´´«µÝ²ÎÊý¡£MBVÊÇԭʼ×é¼þ×÷ÕßʵÏֵġ£ 

¡¡¡¡ÔõÑù×ö£¿ 
¡¡¡¡ÍƼöµÄÓÿɿ¿ÐÔ»»È¡ÐÔÄܵÄÅäÖ㺠

¡¡¡¡ÔÚIIS 4.0ÉÏ£¬ÓÃASPµÄµÍ·ÖÀë¼¶£¬²¢Ê¹ÓÃMTS·þÎñ°ü¡£ 
¡¡¡¡ÔÚIIS 5.0SHANG£¬ÓÃASPµÄÖзÖÀë¼¶£¬Ê¹ÓÃCOM+µÄ¿âÓ¦Óᣠ

¡¡¡¡¼¼ÇÉ10£ºÊ¹ÓÃOption Explicit

¡¡¡¡ÔÚ.aspÎļþÖÐʹÓÃOption Explicit¡£¸Ãָʾ·ÅÔÚ.aspÎļþµÄ¶¥²¿£¬Ç¿ÖÆ¿ª·¢ÕßÔÚʹÓÃÈκαäÁ¿Ö®Ç°±ØÐ붨ÒåËü¡£Ðí¶à³ÌÐòÔ±ÈÏΪÕâÓÐÖúÓÚµ÷ÊÔ³ÌÐò£¬ÒòΪËüÏû³ýÁË´ò×Ö´íÎóµÄ¿ÉÄÜ£¨È罫MyXMLString=ÇóÉMyXLMString=£© 

¡¡¡¡ÁíÍâÒ»µã¿ÉÄܸü¼ÓÖØÒª£ºÒѶ¨Òå±äÁ¿±È䶨ÒåµÄ±äÁ¿¿ì¡£ASPÿ´ÎÊÇÓÃÃû×ÖÀ´ÒýÓÃ䶨Òå±äÁ¿µÄ£»¶øÁíÒ»·½Ã棬ÿ¸öÒѶ¨Òå±äÁ¿ÓÐÒ»¸öÐòºÅ£¬ASPÓÃÕâ¸öÐòºÅÀ´ÒýÓÃÒѶ¨Òå±äÁ¿¡£¼ÈÈ»Option ExplicitÇ¿ÖÆ±äÁ¿¶¨Ò壬¾Í±£Ö¤ÁËËùÓеıäÁ¿¶¼ÊÇÒѶ¨ÒåµÄ£¬·ÃÎÊËٶȾ͸ü¿ìÁË¡£

¡¡¡¡¼¼ÇÉ11£ºÔÚ×Ó¹ý³ÌºÍº¯ÊýÖÐʹÓñ¾µØ±äÁ¿

¡¡¡¡±¾µØ±äÁ¿ÊÇÄÇЩÔÚ×Ó¹ý³ÌºÍº¯ÊýÖж¨ÒåµÄ±äÁ¿¡£ÔÚº¯ÊýºÍ×Ó¹ý³ÌÖУ¬·ÃÎʱ¾µØ±äÁ¿±È·ÃÎÊÈ«¾Ö±äÁ¿¸ü¿ì¡£Ê¹Óñ¾µØ±äÁ¿Ò²Ê¹´úÂë¸ü¸É¾»£¬Òò´Ë¾¡Á¿Ê¹Óñ¾µØ±äÁ¿°É¡£