版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、高級(jí)軟件人才實(shí)作培訓(xùn)專家ASP.NET企業(yè)技術(shù)講師:王承偉高級(jí)軟件人才實(shí)作培訓(xùn)專家緩存(Cache)如果每次進(jìn)入頁(yè)面的時(shí)候都查詢數(shù)據(jù)庫(kù)生成頁(yè)面內(nèi)容的話,如果訪問量非常大,則網(wǎng)站性能會(huì)非常差。而如果只有第一次訪問的時(shí)候才查詢數(shù)據(jù)庫(kù)生成頁(yè)面內(nèi)容,以后都直接輸出內(nèi)容,則能提高系統(tǒng)性能。這樣無(wú)論有多少人訪問都只訪問一次數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)壓力不變。經(jīng)常訪問,但是不是經(jīng)常改動(dòng)的數(shù)據(jù).緩存(Cache)是一種用空間換取時(shí)間的技術(shù),存在于計(jì)算機(jī)中很多地方, 用來(lái)將一些慢速設(shè)備中的常用數(shù)據(jù)保存在快速設(shè)備中,取數(shù)據(jù)的時(shí)候直接從快速設(shè)備中取。比如CPU二級(jí)緩存、內(nèi)存、windows文件讀取緩存。緩存存在失效的問題:為了
2、保證從緩存中讀取數(shù)據(jù)和慢速數(shù)據(jù)(數(shù)據(jù)庫(kù)) 中數(shù)據(jù)一致,則需要在慢速數(shù)據(jù)(數(shù)據(jù)庫(kù))中對(duì)應(yīng)的數(shù)據(jù)發(fā)生變化的時(shí)候,清除緩存中相應(yīng)的數(shù)據(jù)(緩存依賴)。緩存是改進(jìn)網(wǎng)站性能的第一個(gè)手段,就像索引是改進(jìn)數(shù)據(jù)庫(kù)性能的第一個(gè)手段一樣。ASP.net緩存主要分為:頁(yè)面緩存(中庸)、數(shù)據(jù)源緩存(最不靈活的)、自定義數(shù)據(jù)緩存(靈活)這三種主要類型。高級(jí)軟件人才實(shí)作培訓(xùn)專家頁(yè)面緩存給 頁(yè) 面 添 加 標(biāo)簽就可以啟用頁(yè)面緩存,這樣整個(gè)頁(yè)面的內(nèi)容都會(huì)被緩存,頁(yè)面中的ASP.Net代碼、數(shù)據(jù)源在緩存期間都不會(huì)被運(yùn)行,而是直接輸出緩存的頁(yè)面內(nèi)容。 Duration表示緩存時(shí)間,以秒為單位,超過這個(gè)時(shí)間則緩存失效,再次生成以后會(huì)
3、再緩存15秒,以此類推。在Page_Load處設(shè)置斷點(diǎn)、修改數(shù)據(jù)庫(kù)數(shù)據(jù)測(cè)試。這個(gè)緩存是在服務(wù)器緩存的,不是在客戶端,因?yàn)橛肏ttpWatch還是能看到向服務(wù)器提交的請(qǐng)求的,只不過服務(wù)器看到有緩存就沒有再執(zhí)行頁(yè)面類。一般只有看帖、看新聞、看視頻的頁(yè)面才緩存,CUD的頁(yè)面沒必要緩存。緩存是針對(duì)所有這個(gè)頁(yè)面的訪問者。這樣1個(gè)訪問者和1萬(wàn)個(gè)訪問者、一次訪問和100萬(wàn)次訪問對(duì)數(shù)據(jù)庫(kù)的壓力是一樣的。對(duì)于看新聞頁(yè)面來(lái)講,如果如上設(shè)置的話,則會(huì)緩存在第一個(gè)看到的新聞,因?yàn)?id=2、?id=3只是頁(yè)面的不同參數(shù)而已,為了能讓不同的新聞各自緩存,因此可以設(shè)置VaryByParam=“id”,表示對(duì)于相同頁(yè)面的不
4、同的id參數(shù)進(jìn)行單獨(dú)緩存。如果有多個(gè)確定緩存的參數(shù),則將參數(shù)名用分號(hào)隔開即可,比如VaryByParam=“id;number”。測(cè)試。緩存可能會(huì)有過期數(shù)據(jù)的問題,因此根據(jù)需求選用。如果想讓任何不同的查詢字符串都創(chuàng)建不同的緩存,則設(shè)置VaryByParam=*,一般情況下設(shè)置“*”就足夠。在WebUserControl中也可以像頁(yè)面緩存一樣設(shè)置控件的緩存。高級(jí)軟件人才實(shí)作培訓(xùn)專家數(shù)據(jù)源緩存 設(shè)定ObjectDataSource的CacheDuration(緩存時(shí)間:秒), EnableCaching=true。這樣每隔CacheDuration指定的時(shí)間段才調(diào)用SelectMethod指定的方
5、法來(lái)執(zhí)行數(shù)據(jù)庫(kù)查詢,其他時(shí)候都是直接返回緩存的數(shù)據(jù)。取數(shù)據(jù)的過程緩存,在緩存期間,綁定控件向ObjectDataSource要數(shù)據(jù), ObjectDataSource直接將緩存的數(shù)據(jù)返回給控件,不再去向TypeName指向的類要數(shù)據(jù)。高級(jí)軟件人才實(shí)作培訓(xùn)專家高級(jí)軟件人才實(shí)作培訓(xùn)專家緩存依賴依賴于文件內(nèi)容CacheDependency cDep = new CacheDependency(filePath);依賴于數(shù)據(jù)庫(kù)內(nèi)容(輪詢機(jī)制/機(jī)制)(不講)一:輪詢機(jī)制 fw主動(dòng)到數(shù)據(jù)庫(kù)檢查數(shù)據(jù)是否改變1.使用C:WINDOWSMicrosoft.NETFrameworkv2.0.50727中的aspn
6、et_regsql.exe:注冊(cè):aspnet_regsql -S . -E -ed -d 數(shù)據(jù)庫(kù)名 -et -t 表名刪除:aspnet_regsql -S . -E -d 數(shù)據(jù)庫(kù)名 -dt -t 表名取消數(shù)據(jù)庫(kù)緩存依賴: aspnet_regsql -S . -E -dd 數(shù)據(jù)庫(kù)名數(shù)據(jù)庫(kù)名 列出已注冊(cè)表:aspnet_regsql -S . -E -d 數(shù)據(jù)庫(kù)名 -lt 2.配置web.config(見備注)3.數(shù)據(jù)庫(kù)依賴對(duì)象SqlCacheDependency cDep =new SqlCacheDependency(GSSMS, Students);GSSMS:表示配置的名字。Stud
7、ents:表示表名.高級(jí)軟件人才實(shí)作培訓(xùn)專家Session深入 -狀態(tài)提供程序Session分三種:(W3WP.exe)1.InProc(進(jìn)程內(nèi))-默認(rèn)就是這種-速度快/但內(nèi)存小/易丟失 進(jìn)程外:可以在IIS或ASPNET服務(wù)意外關(guān)閉時(shí)繼續(xù)保持狀態(tài),注意此時(shí)存儲(chǔ)到session中的對(duì)象必須支持序列化:2.StateServer:使用aspnet_state.exe注意開始服務(wù)2.1修改配置文件:2.2 設(shè)置是否允許遠(yuǎn)程使用,位置:C:WINDOWSMicrosoft.NETFrameworkv4.0.30319 HKEY_LOCAL_MACHINESYSTEMCurrentControlSet
8、Servicesaspnet_stateParameters把0改成12.3默認(rèn)端:424242.4開啟服務(wù):我的電腦-管理-服務(wù)與應(yīng)用程序-服務(wù)-ASP.NET State Service(ASP.NET 狀態(tài)服務(wù)) 3.SQLServer3.1新建ASPSTATE數(shù)據(jù)庫(kù)使用運(yùn)行Session數(shù)據(jù)庫(kù)腳本: 臨時(shí)儲(chǔ)存區(qū):InstallSqlState.sql & UninstallSqlState.sql永久儲(chǔ)存區(qū):InstallPersistSqlState.sql & UninstallPersistSqlState.sql(需要使用SQLServerAgent服務(wù)-因?yàn)檎{(diào)度作業(yè))注意:之
9、后配置數(shù)據(jù)庫(kù)權(quán)限麻煩的話,可以在運(yùn)行完aspnet_regsql.exe后在數(shù)據(jù)庫(kù)中執(zhí)行你 想要使用的sql腳本,就可以不配置權(quán)限了。高級(jí)軟件人才實(shí)作培訓(xùn)專家微軟AJAX解決方案(*) ASP.Net中內(nèi)置的簡(jiǎn)化AJAX開發(fā)的控件UpdatePanel放入ScriptManager,將要實(shí)現(xiàn)AJAX效果的控件放到UpdatePanel中即可。UpdatePanel原理探秘,用HttpWatch看。只把需要無(wú)刷新更新的部分放到UpdatePanel中。UpdatePanel用來(lái)實(shí)現(xiàn)一些對(duì)性能要求不高的需求非常方便。從原理分析為什么在客戶端把TextBox變紅,AJAX請(qǐng)求以后又變白了。 Time
10、r實(shí)現(xiàn)定時(shí)AJAX效果,原理分析。 UpdateProgress顯示“正在加載數(shù)據(jù)”。 AJAX Toolkit簡(jiǎn)介。高級(jí)軟件人才實(shí)作培訓(xùn)專家全局文件 添加Web全局應(yīng)用程序類,注意文件名不要改。全局文件是對(duì)Web應(yīng)用生命周期的一個(gè)響應(yīng)的地方將Web應(yīng)用啟動(dòng)時(shí)初始化的一些代碼寫到Application_Start中。應(yīng)用關(guān)閉的時(shí)候Application_End調(diào)用。當(dāng)一個(gè)Session啟動(dòng)的時(shí)候Session_Start被調(diào)用,Session結(jié)束(用戶主動(dòng)退出或者超時(shí)結(jié)束)Session_End被調(diào)用。當(dāng)一個(gè)用戶請(qǐng)求來(lái)的時(shí)候Application_BeginRequest方法被調(diào)用當(dāng)應(yīng)用中出現(xiàn)
11、未捕獲異常,Application_Error被調(diào)用(??迹珹SP.Net中的錯(cuò)誤處理機(jī)制),用HttpContext.Current.Server.GetLastError()獲得異常信息,然后用Log4Net記錄到日志中。 案例練習(xí):實(shí)現(xiàn)圖片的防盜鏈,討論。 案例練習(xí):屏蔽指定的IP地址。高級(jí)軟件人才實(shí)作培訓(xùn)專家錯(cuò)誤頁(yè)當(dāng)頁(yè)面發(fā)生錯(cuò)誤的時(shí)候,ASP.Net會(huì)將錯(cuò)誤信息展示出來(lái)(Sqlconnection的錯(cuò)誤就能暴露連接字符串),這樣一來(lái)不好看,二來(lái)會(huì)泄露網(wǎng)站的內(nèi)部實(shí)現(xiàn)信息,給網(wǎng)站帶來(lái)安全隱患,因此需要定制錯(cuò)誤頁(yè),發(fā)生錯(cuò)誤時(shí)顯示開發(fā)人員定制的頁(yè)面。404頁(yè)面放點(diǎn)廣告也是好的嘛。配置web.c
12、onfig,配置customErrors區(qū)域: mode三個(gè)可選值:On:總是顯示定制錯(cuò)誤頁(yè)面;Off:不顯示定制錯(cuò)誤界面,直接顯示調(diào)用堆棧等異常信息;remoteonly:對(duì)于本機(jī)的訪問顯示調(diào)用堆棧等異常信息,對(duì)于外部用戶的顯示定制錯(cuò)誤頁(yè)面。一般設(shè)置為RemoteOnly,這樣發(fā)生錯(cuò)誤的話,管理員可以在服務(wù)器的瀏覽器中看詳細(xì)錯(cuò)誤信息,普通用戶看不到。學(xué)習(xí)演示的時(shí)候mode 設(shè)置為On,否則看不到定制頁(yè)。高級(jí)軟件人才實(shí)作培訓(xùn)專家IIS配置 安裝IIS。部署網(wǎng)站(發(fā)布或者拷貝都可以)。修改連接字符串,compilation設(shè)為false,刪掉cs代碼 上傳文件夾不給執(zhí)行權(quán)限: 在iis管理器中找
13、到上傳文件夾,選擇屬性-執(zhí)行權(quán)限,設(shè)置為“無(wú)”。這樣哪怕利用漏洞上傳了可執(zhí)行代碼到上傳文件夾,也無(wú)法執(zhí)行。 取消所有文件夾的瀏覽權(quán)限,防止用戶查看網(wǎng)站的文件列表,在iis管理器中找到主站節(jié)點(diǎn)屬性主目錄取消“目錄瀏覽”。 IIS管理中,Web服務(wù)器擴(kuò)展,只允許那幾個(gè),其他的CGI、ASP等全部禁止。高級(jí)軟件人才實(shí)作培訓(xùn)專家IHttpModulepublic void Init(HttpApplication context)context.BeginRequest += MyBeginRequest;protected void MyBeginRequest(object send
14、er, EventArgs e)HttpContext contex = (sender as HttpApplication).Context; contex.Response.Write(哈哈哈哈哈);高級(jí)軟件人才實(shí)作培訓(xùn)專家URL重寫(UrlRewrite)為什么要URL重寫?1、有利于SEO,帶參數(shù)的URL權(quán)重較低;2、地址看起來(lái)更正規(guī),推廣uid??纯慈琦i網(wǎng)的URL重寫。偽靜態(tài):看起來(lái)像普通頁(yè)面,而非動(dòng)態(tài)生成的頁(yè)面。原理:在Global.asax的Application_BeginRequest 中讀取Request.Url 得到請(qǐng)求的URL(View-3.aspx),然后用Http
15、Context.Current.RewritePath(ReWriteUrl)進(jìn)行重寫(也就是 交由另外一個(gè)頁(yè)面處理這個(gè)請(qǐng)求)(View.aspx?tid=3格式) /hd/archive/2005/06/20/177633.html也可以使用微軟的URLRewrite,只要修改配置文件就可以進(jìn)行URL重寫。照著文檔自學(xué)配置。見備注高級(jí)軟件人才實(shí)作培訓(xùn)專家靜態(tài)頁(yè) 文章的發(fā)布、列表顯示。 靜態(tài)頁(yè)的評(píng)論 1.讀取靜態(tài)頁(yè)面字符串 2.從數(shù)據(jù)庫(kù)讀取某條新聞 3.將數(shù)據(jù)庫(kù)查處的新聞信息,對(duì)應(yīng)的替換到html代碼對(duì)應(yīng)的占位 符處。(Replace(title,mo
16、del.ATitle) 4.將替換后生成的HTML文件代碼保存到一個(gè)按規(guī)則產(chǎn)生文件名 的html文件中,并將此文件名 更新到數(shù)據(jù)庫(kù)對(duì)應(yīng)的新聞中。高級(jí)軟件人才實(shí)作培訓(xùn)專家留言板 登錄、注冊(cè)(驗(yàn)證登錄名是否已經(jīng)被注冊(cè)Ajax)、驗(yàn)證碼(Session)、無(wú)刷新登錄、無(wú)刷新注冊(cè)、無(wú)刷新評(píng)論(js創(chuàng)建行)、用戶名基于MD5。圖片防盜鏈(判斷Reffer)。定制錯(cuò)誤頁(yè)。高級(jí)軟件人才實(shí)作培訓(xùn)專家CKEditor 集成(項(xiàng)目中講)CKEditor原名FckEditor,著名的HTML編輯器,可以在線編輯HTML內(nèi)容,演示一下。打開。自己人用CKEditor,網(wǎng)友用UBBEditor。配置參考文檔,主要將ck
17、editor中的(adapters、images、lang、plugins、skins、themes、ckeditor.js、config.js、contents.css)解壓到j(luò)s目錄,然后“顯示所有文件”,將ckeditor的目錄“包含在項(xiàng)目中”,在發(fā)帖頁(yè)面引用ckeditor.js,然后設(shè)置多行文本框的class=ckeditor(CSS強(qiáng)大)(服務(wù)端控件CssClas= ckeditor ,客戶端控件要設(shè)定cols、rows屬性,一般不直接用html控件),代碼中仍然可以通過TextBox控件的Text屬性來(lái)訪問編輯器內(nèi)容。由于頁(yè)面提交的時(shí)候會(huì)把富文本編輯器中的html內(nèi)
18、容當(dāng)成攻擊內(nèi)容,因此需要在aspx中的Page標(biāo)簽中設(shè)置 ValidateRequest=false 來(lái)禁用攻擊檢測(cè)(2010中還要根據(jù)報(bào)錯(cuò)信息修改WebConfig來(lái)禁用XSS檢測(cè))。高級(jí)軟件人才實(shí)作培訓(xùn)專家CKFinder集成CKFinder是一個(gè)CKEditor插件,用來(lái)為CKEditor提供文件的上傳的功能。將binRelease下的CKFinder.dll添加到項(xiàng)目的引用;將core、ckfinder.js、ckfinder.html、config.ascx解壓到CKFinder自己的目錄。按照文檔修改CKEditor的config.js,將上傳的處理程序設(shè)定為CKFinder,注意路徑的問
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 手機(jī)制定協(xié)議書
- 煤礦大包協(xié)議合同
- 苗木?;顓f(xié)議書
- 苗木轉(zhuǎn)運(yùn)協(xié)議書
- 蔬菜包銷協(xié)議書
- 融資平臺(tái)協(xié)議書
- 解除就業(yè)意向協(xié)議書
- 設(shè)備分期協(xié)議書
- 設(shè)計(jì)人合同范本
- 訴訟分成協(xié)議書
- 護(hù)理溝通中的積極反饋與正向激勵(lì)
- 2024年河北醫(yī)科大學(xué)第四醫(yī)院招聘筆試真題
- 四川省教育考試院2025年公開招聘編外聘用人員考試筆試模擬試題及答案解析
- 餐廳前廳經(jīng)理合同范本
- (2025年)(完整版)醫(yī)療器械基礎(chǔ)知識(shí)培訓(xùn)考試試題及答案
- 口腔科手術(shù)安全核查制度
- 山東魯商集團(tuán)招聘筆試2025
- 智慧樹知道網(wǎng)課《算法大視界(中國(guó)海洋大學(xué))》課后章節(jié)測(cè)試答案
- 高考《數(shù)學(xué)大合集》專題突破強(qiáng)化訓(xùn)練682期【圓錐】細(xì)說(shuō)高考卷里圓錐同構(gòu)式的妙用
- 《天邊有顆閃亮的星》 課件 2025-2026學(xué)年人音版(簡(jiǎn)譜)(2024)初中音樂八年級(jí)上冊(cè)
- 牲畜家禽屠宰場(chǎng)建設(shè)與布局設(shè)計(jì)方案
評(píng)論
0/150
提交評(píng)論