.Net網(wǎng)站的web.config配置說明(4)_.Net教程

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

      推薦:C#使用Panel實現(xiàn)窗體動態(tài)側(cè)邊欄
      可以實現(xiàn)側(cè)邊欄的展開、隱藏和鎖定的功能。添加的側(cè)邊欄默認(rèn)是不顯示的通過鼠標(biāo)的懸停事件MouseHover來觸發(fā)展開動作。側(cè)邊欄實際上是一個窗體或者是容器,實現(xiàn)展開的動作必須在一個時間段內(nèi)逐步的增加寬度,我采用Panel作為容器的載體,在一個線程中逐步增加Panel的Wid

      這種方式和以前ASP中的模式一樣,就是服務(wù)器將Session信息存儲在IIS進(jìn)程中。當(dāng)IIS關(guān)閉、重起后,這些信息都會丟失。但是這種模式也有自己最大好處,就是性能最高。應(yīng)為所有的Session信息都存儲在了IIS的進(jìn)程中,所以IIS能夠很快的訪問到這些信息,這種模式的性能比進(jìn)程外存儲Session信息或是在SQL Server中存儲Session信息都要快上很多。這種模式也是ASP.NET的默認(rèn)方式。

      好了,現(xiàn)在讓我們做個試驗。打開剛才的SessionState.aspx頁面,隨便輸入一些字符,使其存儲在Session中。然后,讓我們讓IIS重起。注意,并不是使當(dāng)前的站點停止再開始,而是在IIS中本機(jī)的機(jī)器名的節(jié)點上點擊鼠標(biāo)右鍵,選擇重新啟動IIS。(想當(dāng)初使用NT4時,重新啟動IIS必須要重新啟動計算機(jī)才行,微軟真是@#$%^&)返回到SessionState.aspx頁面中,檢查剛才的Session信息,發(fā)現(xiàn)信息已經(jīng)丟失了。

      將服務(wù)器Session信息存儲在進(jìn)程外

      首先,讓我們來打開管理工具->服務(wù),找到名為:ASP.NET State Service的服務(wù),啟動它。實際上,這個服務(wù)就是啟動一個要保存Session信息的進(jìn)程。啟動這個服務(wù)后,你可以從Windows任務(wù)管理器->進(jìn)程中看到一個名為 aspnet_state.exe的進(jìn)程,這個就是我們保存Session信息的進(jìn)程。

      然后,回到Web.config文件中上述的段落中,將mode的值改為StateServer。保存文件后的重新打開一個IE,打開 SessionState.aspx頁面,保存一些信息到Session中。這時,讓我們重起IIS,再回到SessionState.aspx頁面中查看剛才的Session信息,發(fā)現(xiàn)沒有丟失。

      實際上,這種將Session信息存儲在進(jìn)程外的方式不光指可以將信息存儲在本機(jī)的進(jìn)程外,還可以將Session信息存儲在其他的服務(wù)器的進(jìn)程中。這時,不光需要將mode的值改為StateServer,還需要在stateConnectionString中配置相應(yīng)的參數(shù)。例如你的計算你是192.168.0.1,你想把Session存儲在IP為192.168.0.2的計算機(jī)的進(jìn)程中,就需要設(shè)置成這樣: stateConnectionString="tcpip=192.168.0.2:42424"。當(dāng)然,不要忘記在192.168.0.2的計算機(jī)中裝上.NET Framework,并且啟動ASP.NET State Services服務(wù)。

      將服務(wù)器Session信息存儲在SQL Server中

      首先,還是讓我們來做一些準(zhǔn)備工作。啟動SQL Server和SQL Server代理服務(wù)。在SQL Server中執(zhí)行一個叫做 InstallSqlState.sql的腳本文件。這個腳本文件將在SQL Server中創(chuàng)建一個用來專門存儲Session信息的數(shù)據(jù)庫,及一個維護(hù)Session信息數(shù)據(jù)庫的SQL Server代理作業(yè)。我們可以在以下路徑中找到那個文件:

      [system drive]winntMicrosoft.NETFramework[version]

      然后打開查詢分析器,連接到SQL Server服務(wù)器,打開剛才的那個文件并且執(zhí)行。稍等片刻,數(shù)據(jù)庫及作業(yè)就建立好了。這時,你可以打開企業(yè)管理器,看到新增了一個叫ASPState的數(shù)據(jù)庫。但是這個數(shù)據(jù)庫中只是些存儲過程,沒有用戶表。實際上Session信息是存儲在了tempdb 數(shù)據(jù)庫的ASPStateTempSessions表中的,另外一個ASPStateTempApplications表存儲了ASP中 Application對象信息。這兩個表也是剛才的那個腳本建立的。另外查看管理->SQL Server代理->作業(yè),發(fā)現(xiàn)也多了一個叫做ASPState_Job_DeleteExpiredSessions的作業(yè),這個作業(yè)實際上就是每分鐘去ASPStateTempSessions 表中刪除過期的Session信息的。

      接著,我們返回到Web.config文件,修改mode的值改為SQLServer。注意,還要同時修改sqlConnectionString的值,格式為:

      sqlConnectionString="data source=localhost; Integrated Security=SSPI;"

      其中data source是指SQL Server服務(wù)器的IP地址,如果SQL Server與IIS是一臺機(jī)子,寫127.0.0.1 就行了。Integrated Security=SSPI的意思是使用Windows集成身份驗證,這樣,訪問數(shù)據(jù)庫將以ASP.NET的身份進(jìn)行,通過如此配置,能夠獲得比使用userid=sa;password=口令的SQL Server驗證方式更好的安全性。當(dāng)然,如果SQL Server運行于另一臺計算機(jī)上,你可能會需要通過Active Directory域的方式來維護(hù)兩邊驗證的一致性。

      分享:減少.NET應(yīng)用程序內(nèi)存占用的一則實踐
      最近一周比較忙,主要的工作內(nèi)容是在做一個叫鍵盤精靈的東西,簡單來講就是將很多數(shù)據(jù)放到內(nèi)存中,對這些數(shù)據(jù)進(jìn)行快速檢索,然后找出根據(jù)輸入條件最匹配的10條記錄并予以展示。具體和下面兩款炒股軟件的相關(guān)功能類似: 數(shù)據(jù)以文本形式存在文件中,且數(shù)據(jù)量較大,有近20

      共4頁上一頁1234下一頁
      來源:模板無憂//所屬分類:.Net教程/更新時間:2013-04-17
      相關(guān).Net教程