.Net網(wǎng)站的web.config配置說(shuō)明(4)_.Net教程
推薦:C#使用Panel實(shí)現(xiàn)窗體動(dòng)態(tài)側(cè)邊欄可以實(shí)現(xiàn)側(cè)邊欄的展開(kāi)、隱藏和鎖定的功能。添加的側(cè)邊欄默認(rèn)是不顯示的通過(guò)鼠標(biāo)的懸停事件MouseHover來(lái)觸發(fā)展開(kāi)動(dòng)作。側(cè)邊欄實(shí)際上是一個(gè)窗體或者是容器,實(shí)現(xiàn)展開(kāi)的動(dòng)作必須在一個(gè)時(shí)間段內(nèi)逐步的增加寬度,我采用Panel作為容器的載體,在一個(gè)線程中逐步增加Panel的Wid
這種方式和以前ASP中的模式一樣,就是服務(wù)器將Session信息存儲(chǔ)在IIS進(jìn)程中。當(dāng)IIS關(guān)閉、重起后,這些信息都會(huì)丟失。但是這種模式也有自己最大好處,就是性能最高。應(yīng)為所有的Session信息都存儲(chǔ)在了IIS的進(jìn)程中,所以IIS能夠很快的訪問(wèn)到這些信息,這種模式的性能比進(jìn)程外存儲(chǔ)Session信息或是在SQL Server中存儲(chǔ)Session信息都要快上很多。這種模式也是ASP.NET的默認(rèn)方式。
好了,現(xiàn)在讓我們做個(gè)試驗(yàn)。打開(kāi)剛才的SessionState.aspx頁(yè)面,隨便輸入一些字符,使其存儲(chǔ)在Session中。然后,讓我們讓IIS重起。注意,并不是使當(dāng)前的站點(diǎn)停止再開(kāi)始,而是在IIS中本機(jī)的機(jī)器名的節(jié)點(diǎn)上點(diǎn)擊鼠標(biāo)右鍵,選擇重新啟動(dòng)IIS。(想當(dāng)初使用NT4時(shí),重新啟動(dòng)IIS必須要重新啟動(dòng)計(jì)算機(jī)才行,微軟真是@#$%^&)返回到SessionState.aspx頁(yè)面中,檢查剛才的Session信息,發(fā)現(xiàn)信息已經(jīng)丟失了。
將服務(wù)器Session信息存儲(chǔ)在進(jìn)程外
首先,讓我們來(lái)打開(kāi)管理工具->服務(wù),找到名為:ASP.NET State Service的服務(wù),啟動(dòng)它。實(shí)際上,這個(gè)服務(wù)就是啟動(dòng)一個(gè)要保存Session信息的進(jìn)程。啟動(dòng)這個(gè)服務(wù)后,你可以從Windows任務(wù)管理器->進(jìn)程中看到一個(gè)名為 aspnet_state.exe的進(jìn)程,這個(gè)就是我們保存Session信息的進(jìn)程。
然后,回到Web.config文件中上述的段落中,將mode的值改為StateServer。保存文件后的重新打開(kāi)一個(gè)IE,打開(kāi) SessionState.aspx頁(yè)面,保存一些信息到Session中。這時(shí),讓我們重起IIS,再回到SessionState.aspx頁(yè)面中查看剛才的Session信息,發(fā)現(xiàn)沒(méi)有丟失。
實(shí)際上,這種將Session信息存儲(chǔ)在進(jìn)程外的方式不光指可以將信息存儲(chǔ)在本機(jī)的進(jìn)程外,還可以將Session信息存儲(chǔ)在其他的服務(wù)器的進(jìn)程中。這時(shí),不光需要將mode的值改為StateServer,還需要在stateConnectionString中配置相應(yīng)的參數(shù)。例如你的計(jì)算你是192.168.0.1,你想把Session存儲(chǔ)在IP為192.168.0.2的計(jì)算機(jī)的進(jìn)程中,就需要設(shè)置成這樣: stateConnectionString="tcpip=192.168.0.2:42424"。當(dāng)然,不要忘記在192.168.0.2的計(jì)算機(jī)中裝上.NET Framework,并且啟動(dòng)ASP.NET State Services服務(wù)。
將服務(wù)器Session信息存儲(chǔ)在SQL Server中
首先,還是讓我們來(lái)做一些準(zhǔn)備工作。啟動(dòng)SQL Server和SQL Server代理服務(wù)。在SQL Server中執(zhí)行一個(gè)叫做 InstallSqlState.sql的腳本文件。這個(gè)腳本文件將在SQL Server中創(chuàng)建一個(gè)用來(lái)專門存儲(chǔ)Session信息的數(shù)據(jù)庫(kù),及一個(gè)維護(hù)Session信息數(shù)據(jù)庫(kù)的SQL Server代理作業(yè)。我們可以在以下路徑中找到那個(gè)文件:
[system drive]winntMicrosoft.NETFramework[version]
然后打開(kāi)查詢分析器,連接到SQL Server服務(wù)器,打開(kāi)剛才的那個(gè)文件并且執(zhí)行。稍等片刻,數(shù)據(jù)庫(kù)及作業(yè)就建立好了。這時(shí),你可以打開(kāi)企業(yè)管理器,看到新增了一個(gè)叫ASPState的數(shù)據(jù)庫(kù)。但是這個(gè)數(shù)據(jù)庫(kù)中只是些存儲(chǔ)過(guò)程,沒(méi)有用戶表。實(shí)際上Session信息是存儲(chǔ)在了tempdb 數(shù)據(jù)庫(kù)的ASPStateTempSessions表中的,另外一個(gè)ASPStateTempApplications表存儲(chǔ)了ASP中 Application對(duì)象信息。這兩個(gè)表也是剛才的那個(gè)腳本建立的。另外查看管理->SQL Server代理->作業(yè),發(fā)現(xiàn)也多了一個(gè)叫做ASPState_Job_DeleteExpiredSessions的作業(yè),這個(gè)作業(yè)實(shí)際上就是每分鐘去ASPStateTempSessions 表中刪除過(guò)期的Session信息的。
接著,我們返回到Web.config文件,修改mode的值改為SQLServer。注意,還要同時(shí)修改sqlConnectionString的值,格式為:
sqlConnectionString="data source=localhost; Integrated Security=SSPI;"
其中data source是指SQL Server服務(wù)器的IP地址,如果SQL Server與IIS是一臺(tái)機(jī)子,寫127.0.0.1 就行了。Integrated Security=SSPI的意思是使用Windows集成身份驗(yàn)證,這樣,訪問(wèn)數(shù)據(jù)庫(kù)將以ASP.NET的身份進(jìn)行,通過(guò)如此配置,能夠獲得比使用userid=sa;password=口令的SQL Server驗(yàn)證方式更好的安全性。當(dāng)然,如果SQL Server運(yùn)行于另一臺(tái)計(jì)算機(jī)上,你可能會(huì)需要通過(guò)Active Directory域的方式來(lái)維護(hù)兩邊驗(yàn)證的一致性。
分享:減少.NET應(yīng)用程序內(nèi)存占用的一則實(shí)踐最近一周比較忙,主要的工作內(nèi)容是在做一個(gè)叫鍵盤精靈的東西,簡(jiǎn)單來(lái)講就是將很多數(shù)據(jù)放到內(nèi)存中,對(duì)這些數(shù)據(jù)進(jìn)行快速檢索,然后找出根據(jù)輸入條件最匹配的10條記錄并予以展示。具體和下面兩款炒股軟件的相關(guān)功能類似: 數(shù)據(jù)以文本形式存在文件中,且數(shù)據(jù)量較大,有近20
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP發(fā)送Email實(shí)例(可帶附件)
- js實(shí)現(xiàn)廣告漂浮效果的小例子
- asp.net Repeater 數(shù)據(jù)綁定的具體實(shí)現(xiàn)
- Asp.Net 無(wú)刷新文件上傳并顯示進(jìn)度條的實(shí)現(xiàn)方法及思路
- Asp.net獲取客戶端IP常見(jiàn)代碼存在的偽造IP問(wèn)題探討
- VS2010 水晶報(bào)表的使用方法
- ASP.NET中操作SQL數(shù)據(jù)庫(kù)(連接字符串的配置及獲取)
- asp.net頁(yè)面?zhèn)髦禍y(cè)試實(shí)例代碼
- DataGridView - DataGridViewCheckBoxCell的使用介紹
- asp.net中javascript的引用(直接引入和間接引入)
- 三層+存儲(chǔ)過(guò)程實(shí)現(xiàn)分頁(yè)示例代碼
.Net教程Rss訂閱編程教程搜索
.Net教程推薦
- ASP.Net中利用CSS實(shí)現(xiàn)多界面兩法
- 看看一個(gè).net版對(duì)話框控件
- ASP.NET對(duì)IIS中的虛擬目錄進(jìn)行操作
- ASP.NET 2.0中CSS不正常的解決方法
- ASP.NET 2.0實(shí)現(xiàn)防止同一用戶同時(shí)登陸
- ASP.NET中利用存儲(chǔ)過(guò)程實(shí)現(xiàn)模糊查詢
- ASP.NET生成靜態(tài)HTML頁(yè)面并分別按年月目錄存放
- 解析Web開(kāi)發(fā)模式的顛覆者:ASP.NET MVC
- Asp.Net 無(wú)刷新文件上傳并顯示進(jìn)度條的實(shí)現(xiàn)方法及思路
- 學(xué)習(xí)asp.net之SQL語(yǔ)句查詢效率和安全性
- 相關(guān)鏈接:
- 教程說(shuō)明:
.Net教程-.Net網(wǎng)站的web.config配置說(shuō)明(4)
。