日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

處理ASP請(qǐng)求的內(nèi)部討論_ASP教程

編輯Tag賺U幣
教程Tag:暫無(wú)Tag,歡迎添加,賺取U幣!

推薦:ASP錯(cuò)誤大全
ASP錯(cuò)誤大全 對(duì)初學(xué)者們有幫助,或許高手也會(huì)忘記,ASP錯(cuò)誤大全 MicrosoftVBScript語(yǔ)*錯(cuò)誤(0x800A03E9)-->內(nèi)存不足 MicrosoftVBScript語(yǔ)*錯(cuò)誤(0x800A03EA)-->語(yǔ)*錯(cuò)誤 MicrosoftVBScript語(yǔ)*

ASP請(qǐng)求由WAM對(duì)象進(jìn)行初始化處理。該WAM對(duì)象再把它發(fā)送給ASP-RunTime。ASP-RunTime通過(guò)創(chuàng)建一個(gè)內(nèi)部頁(yè)面對(duì)象對(duì)其進(jìn)行響應(yīng)。

WAM對(duì)象是一個(gè)自由線程對(duì)象。當(dāng)它調(diào)用諸如ASP.DLL的ISAPI擴(kuò)展時(shí),它使用由IIS-RunTime維護(hù)的線程池所分配的MTA模型的線程。

創(chuàng)建ISAPI擴(kuò)展時(shí)面對(duì)的一個(gè)棘手的問(wèn)題是,如何處理由這一MTA線程池所帶來(lái)的線程并發(fā)與同步的問(wèn)題。ASP-RunTime通過(guò)在運(yùn)行ASP腳本前把每個(gè)ASP請(qǐng)求切換至一個(gè)單線程單元(STA),從而使問(wèn)題得到簡(jiǎn)化。ASP-RunTime管理一個(gè)獨(dú)立的STA輔助線程池(在后臺(tái),ASP實(shí)際上通過(guò)使用COM 線程池來(lái)實(shí)現(xiàn)這一點(diǎn))。ASP設(shè)計(jì)師創(chuàng)建了這種線程池方案,以在并發(fā)和資源利用之間提供一種優(yōu)化平衡,同時(shí)消除對(duì)程序員實(shí)現(xiàn)同步的需要。


ASP-RunTime是怎樣把每個(gè)請(qǐng)求從MTA線程切換到STA線程的。ASP-RunTime調(diào)度機(jī)制把每個(gè)請(qǐng)求都放到一個(gè)中央請(qǐng)求隊(duì)列中。由ASP管理的線程池中的STA線程監(jiān)視該隊(duì)列并以先進(jìn)先出方式處理請(qǐng)求。注意,這一線程池的大小是動(dòng)態(tài)變化的。ASP-RunTime在通信高峰期會(huì)產(chǎn)生額外的線程,而在通信較少時(shí)釋放線程。

切換到STA線程有效地解決了并發(fā)性問(wèn)題,但是這樣對(duì)于性能也有明顯的影響。在一個(gè)單獨(dú)的MTA線程中隊(duì)每個(gè)請(qǐng)求進(jìn)行處理的ISAPI擴(kuò)展DLL都能提供更快的響應(yīng)時(shí)間。

IIS提供了一種方法以對(duì)STA線程池和請(qǐng)求隊(duì)列的最大尺寸進(jìn)行設(shè)置。線程池的大小由IIS元數(shù)據(jù)庫(kù)中AspProcessorThreadMax主鍵控制。該主鍵的缺省設(shè)置是每進(jìn)程每處理器25(評(píng)論:此數(shù)字最好能找到微軟的相關(guān)文檔證明一下。有人說(shuō)這個(gè)數(shù)目是10個(gè)/CPU)。也就是說(shuō),在一臺(tái)四處理器計(jì)算機(jī)中,每個(gè)處理ASP的進(jìn)程可以最多有100個(gè)輔助線程。除非對(duì)調(diào)整線程池的相關(guān)問(wèn)題已經(jīng)考慮成熟,否則應(yīng)該避免改變?cè)撴I值。注意,你不能使用Internet Server Manager來(lái)改變這個(gè)設(shè)置。必須使用管理腳本或者VB應(yīng)用來(lái)進(jìn)行修改。

IIS為ASP請(qǐng)求隊(duì)列設(shè)置了一個(gè)最大容量。缺省情況下,ASP-RunTime允許隊(duì)列最多容納3000個(gè)請(qǐng)求(微軟的另一篇文檔指出,這個(gè)隊(duì)列只能容納500個(gè)請(qǐng)求)。一旦超出,后來(lái)進(jìn)入的ASP請(qǐng)求就會(huì)被拒絕,返回錯(cuò)誤信息為“Server Too Busy”。

可以使用IIS管理對(duì)象和ADSI來(lái)編程修改AspProcessorThreadMax主鍵和AspRequestQueueMax主鍵。例如,在一個(gè)Standard EXE項(xiàng)目中,引用Active DS類型庫(kù),編寫如下代碼:

Dim MyWebServer As ActiveDS.IADs

Set MyWebServer = GetOject(“IIS://Localhost/W3SVC”)

MyWebServer.Put “AspProcessorThreadMax”, 30

MyWebServer.Put “AspRequestQueueMax”, 1500

MyWebServer.SetInfo



下面簡(jiǎn)單總結(jié)一下在單處理器計(jì)算機(jī)上以缺省方式安裝的IIS中,ASP線程池是怎么工作的。該線程池對(duì)于每個(gè)處理器有25個(gè)STA輔助線程可用。當(dāng)一個(gè)請(qǐng)求到達(dá)時(shí),就被放到請(qǐng)求隊(duì)列中,ASP-RunTime從線程池中調(diào)度一個(gè)空閑STA線程,如果存在一個(gè)可用的話(注意,這種方案允許線程池中的任何線程都可以對(duì)請(qǐng)求進(jìn)行處理)。如果沒(méi)有空閑的輔助線程,請(qǐng)求就加入隊(duì)列。只要隊(duì)列沒(méi)有達(dá)到缺省最大容量,所有請(qǐng)求都將得到處理。

來(lái)自Ted Pattison的《Programming Distributed Application with Visual Basic 6.0》

分享:ASP的技術(shù)特點(diǎn)與使用方法
幾年以前,業(yè)界在動(dòng)態(tài)主頁(yè)發(fā)布方面唯一的渠道是CGI(Common Ga teway Interface) 模式。隨后出現(xiàn)的 ISAPI、NSAPI和JDBC等技術(shù)方案雖較CGI進(jìn)步,但從企業(yè)網(wǎng)(Intranet )的技術(shù)現(xiàn)實(shí)來(lái)衡量,這些方案仍

來(lái)源:模板無(wú)憂//所屬分類:ASP教程/更新時(shí)間:2008-08-22
相關(guān)ASP教程