国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開(kāi)通VIP
ASP.NET 4新增功能(一) ASP.NET核心服務(wù) - longgel - 博客園

ASP.NET 4新增功能(一) ASP.NET核心服務(wù)

1.可擴(kuò)展輸出緩存

     自從ASP.NET 1.0發(fā)布開(kāi)始,一般都是通過(guò)使用輸出緩存將頁(yè)、控件和http響應(yīng)保存在內(nèi)存中。對(duì)于后續(xù)的Web請(qǐng)求,ASP.NET可以從內(nèi)存中檢索存在的緩存輸出并不是從頭開(kāi)始重新生成輸出,從而更快地提供響應(yīng)。但該方法有一個(gè)限制,就是緩存的數(shù)據(jù)必須存儲(chǔ)在內(nèi)存中。在負(fù)載較大的服務(wù)器上,輸出緩存的內(nèi)存需求可能會(huì)和Web應(yīng)用程序其它它部分的內(nèi)存需求產(chǎn)生沖突。

     ASP.NET 4 為輸出緩存增加了擴(kuò)展性,使您能夠配置一個(gè)或多個(gè)自定義輸出緩存提供程序。輸出緩存提供程序可使用任何存儲(chǔ)機(jī)制保存 HTML 內(nèi)容。這些存儲(chǔ)選項(xiàng)包括本地或遠(yuǎn)程磁盤、云存儲(chǔ)和分布式緩存引擎。

     借助ASP.NET 4 中可以定制輸出緩存提供程序的功能,我們就可以為網(wǎng)站設(shè)計(jì)更為主動(dòng)而且更加智勇雙全能的輸出緩存策略。例如,我們可以創(chuàng)建這樣一個(gè)輸出緩存提供程序,該程序?qū)⒄军c(diǎn)流量“排名前10”的頁(yè)面緩存在內(nèi)存里,而將其它的頁(yè)面緩存在磁盤里?;蛘撸部梢詫?duì)所呈現(xiàn)頁(yè)面的各種變化因素組合進(jìn)行緩存,但應(yīng)該使用分布式緩存以減少前端Web服務(wù)器的內(nèi)存消耗。

     我們可以創(chuàng)建繼承自O(shè)utPutCacheProvider類型的類來(lái)自定義輸出緩存提供程序。隨后,可以通過(guò)在web.config中進(jìn)行配置該提供程序,設(shè)置outputCache節(jié)點(diǎn)的providers子節(jié)點(diǎn),如下面的示例所示:

<caching>
  
<outputCache defaultProvider="AspNetInternalProvider">
    
<providers>
      
<add name="DiskCache" 
          type
="Test.OutputCacheEx.DiskOutputCacheProvider, DiskCacheProvider"/>
    
</providers>
  
</outputCache>
</caching>


     在ASP.NET 4 的默認(rèn)輸出緩存策略中。所有的HTTP響應(yīng)、所呈現(xiàn)的頁(yè)面和控件緩存均使用上例所示的默認(rèn)輸出緩存提供程序(其中defaultProvider屬性值為AspNetInternalProvider)。通過(guò)為defaultProvider指定不同的提供程序。就可以更改web應(yīng)用程序的默認(rèn)輸出緩存提供程序。

另外,還可以針對(duì)每個(gè)用戶控件和各個(gè)請(qǐng)求選擇不同的輸出緩存提供程序。要為不同的Web用戶控件選擇不同的輸出緩存提供程序,最簡(jiǎn)便的方法是設(shè)置頁(yè)面或控件指令中新增加的providerName屬性,如下面的示例所示:

<%@ OutputCache Duration="60" VaryByParam="None" 
providerName="DiskCache" %>

若要為某個(gè)HTTP請(qǐng)求指定不同的輸出緩存提供程序,可以覆蓋Global.asax文件中新增加的GetOutputCacheProviderName方法,以編程的方式指定要用于特定請(qǐng)求的提供程序。

2.預(yù)加載Web應(yīng)用程序

     某些Web應(yīng)用程序在第一次請(qǐng)求提供服務(wù)之前,需要加載大量的數(shù)據(jù)或執(zhí)行開(kāi)銷很大的初始化處理。在ASP.NET早期版本中,對(duì)于此類情況,必須采用自定義方法“喚醒”ASP.NET應(yīng)用程序,然后在Global.asax文件中的Application_Load方法中運(yùn)行初始化代碼。

     為應(yīng)對(duì)這種情況,當(dāng)ASP.NET 4在Windows Server 2008 R2上的IIS7.5中運(yùn)行時(shí),ASP.NET 4提供一種新的應(yīng)用程序預(yù)加載管理器。預(yù)加載功能提供了一種可控的方法,用于啟動(dòng)應(yīng)用程序池,初始化ASP.NET應(yīng)用程序,然后接受HTTP請(qǐng)求。通過(guò)這種方法,您可以在處理第一項(xiàng)HTTP請(qǐng)求之前執(zhí)行開(kāi)銷很大的應(yīng)用程序初始化的工作。例如,可以使用預(yù)加載管理器初始化某個(gè)應(yīng)用程序,然后向負(fù)載平衡器發(fā)生信號(hào),告知應(yīng)用程序已初始化并做好接受HTTP請(qǐng)求的準(zhǔn)備。

      若要使用應(yīng)用程序預(yù)加載管理器,就需要配置applicationHost.config文件,設(shè)置IIS 7.5中的應(yīng)用程序池為自動(dòng)啟動(dòng),配置如下:

<applicationPools>
    
<add name="MyApplicationPool" startMode="AlwaysRunning" />
</applicationPools>

由于一個(gè)應(yīng)用程序池可以包含多個(gè)應(yīng)用程序,因此我們就需要通過(guò)使用applicationHost.config文件中的以下配置分別指定要自動(dòng)啟動(dòng)的各個(gè)應(yīng)用程序:

<sites>
  
<site name="MySite" id="1">
    
<application path="/"
        serviceAutoStartEnabled
="true"
        serviceAutoStartProvider
="PrewarmMyCache" >
        
<!-- Additional content -->
    
</application>
  
</site>
</sites>

<!-- Additional content -->

<serviceAutoStartProviders>
    
<add name="PrewarmMyCache"
        type
="MyNamespace.CustomInitialization, MyLibrary" />
</serviceAutoStartProviders>

3.永久重定向頁(yè)面

在應(yīng)用程序的生命周期內(nèi),Web應(yīng)用程序中有可能修改url的顯示規(guī)則。

在ASP.NET 中,開(kāi)發(fā)人員處理對(duì)舊的URL的請(qǐng)求的傳統(tǒng)方式是使用Redirect方法將請(qǐng)求轉(zhuǎn)發(fā)至新的URL。然而,Redirect方法會(huì)發(fā)出HTTP 302臨時(shí)重定向。這會(huì)產(chǎn)生額外的HTTP往返。也不是對(duì)搜索引擎的友好。

ASP.NET 4 增加了一個(gè)RedirectPermanent幫助方法,使用該方法可以方便地發(fā)生http 301(永久跳轉(zhuǎn))的響應(yīng),如下面的示例所示:

RedirectPermanent("/newpath/foroldcontent.aspx");
4.會(huì)話狀態(tài)壓縮

默認(rèn)情況下,ASP.NET 提供兩用于存儲(chǔ)整個(gè)Web應(yīng)用程序中的會(huì)話狀態(tài)的選項(xiàng)。第一個(gè)選項(xiàng)是一個(gè)調(diào)用進(jìn)程外會(huì)話狀態(tài)服務(wù)器的會(huì)話狀態(tài)提供程序。第二個(gè)選項(xiàng)是一個(gè)在Microsoft SQL Server數(shù)據(jù)庫(kù)中存儲(chǔ)數(shù)據(jù)的會(huì)話狀態(tài)提供程序。

由于這兩個(gè)選項(xiàng)均在 Web 應(yīng)用程序的工作進(jìn)程之外存儲(chǔ)狀態(tài)信息,因此在將會(huì)話狀態(tài)發(fā)送至遠(yuǎn)程存儲(chǔ)器之前,必須對(duì)其進(jìn)行序列化。如果會(huì)話狀態(tài)中保存了大量數(shù)據(jù),序列化數(shù)據(jù)的大小可能變得很大。

ASP.NET 4 針對(duì)這兩種類型的進(jìn)程外會(huì)話狀態(tài)提供程序引入了一個(gè)新的壓縮選項(xiàng)。使用此選項(xiàng),在 Web 服務(wù)器上有多余 CPU 周期的應(yīng)用程序可以大大縮減序列化會(huì)話狀態(tài)數(shù)據(jù)的大小。

可以使用配置文件中 sessionState 元素的新增加的 compressionEnabled 屬性設(shè)置此選項(xiàng)。當(dāng) compressionEnabled 配置選項(xiàng)設(shè)置為 true 時(shí),ASP.NET 使用 .NET Framework GZipStream類對(duì)序列化會(huì)話狀態(tài)進(jìn)行壓縮和解壓縮。下面的示例演示如何設(shè)置該特性。

<sessionState
    
mode="SqlServer"
    sqlConnectionString
="data source=dbserver;Initial Catalog=aspnetstate"
    allowCustomSqlDatabase
="true"
    compressionEnabled
="true"
/>
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
VS2010與.NET4系列 14.可擴(kuò)展的ASP.NET4輸出緩存
? 預(yù)編譯ASP.NET 把*.aspx.cs文件封裝成dll文件 |BOBO-BOSCO...
ASP.NET和C#有何作用?
編寫高性能 Web 應(yīng)用程序的 10 個(gè)技巧
asp.net網(wǎng)頁(yè)緩存配置
ASP.NET 2.0的緩存技術(shù)簡(jiǎn)介
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服