西西軟件下載最安全的下載網(wǎng)站、值得信賴的軟件下載站!

首頁(yè)編程開(kāi)發(fā)ASP.NET → 使用Glimpse 監(jiān)測(cè)ASP.NET MVC網(wǎng)站性能

使用Glimpse 監(jiān)測(cè)ASP.NET MVC網(wǎng)站性能

相關(guān)軟件相關(guān)文章發(fā)表評(píng)論 來(lái)源:西西整理時(shí)間:2012/12/25 8:37:12字體大小:A-A+

作者:西西點(diǎn)擊:1次評(píng)論:0次標(biāo)簽: 性能測(cè)試

  • 類(lèi)型:系統(tǒng)優(yōu)化大。500.9M語(yǔ)言:中文 評(píng)分:6.6
  • 標(biāo)簽:
立即下載

在開(kāi)發(fā)ASP.NET WebFrom時(shí),如果想要追蹤每個(gè)頁(yè)面的執(zhí)行狀況與效能的話,其實(shí)是可以使用“Trace”功能,如此一來(lái)就可以在每個(gè)頁(yè)面的下方顯示頁(yè)面執(zhí)行時(shí)的完整詳細(xì)信息,包括前端傳送的Http Request、所有的Session、Cookie等,對(duì)于開(kāi)發(fā)時(shí)期來(lái)說(shuō),這些信息可以幫助我們?cè)诔e(cuò)時(shí)候可以掌握確切的信息,然而系統(tǒng)上線之后,Trace功能勢(shì)必要關(guān)閉,而單靠ELMAH記錄錯(cuò)誤訊息也無(wú)法完全掌握,因?yàn)橛械臅r(shí)候執(zhí)行正常并不表示功能正常,例如運(yùn)行時(shí)間過(guò)慢、路徑錯(cuò)誤等,

接下來(lái)就來(lái)介紹“GlimPSe”,除了具有Trace的功能外,也可以結(jié)合Forms Authentication的登入認(rèn)證,讓我們?cè)谙到y(tǒng)上線之后,一樣可以實(shí)時(shí)讓開(kāi)發(fā)人員追蹤頁(yè)面執(zhí)行的各項(xiàng)信息。

Glimpse是一款.NET下的性能測(cè)試工具,支持asp.net 、asp.net mvc, EF等等,優(yōu)勢(shì)在于,不需要修改原項(xiàng)目任何代碼,且能輸出代碼執(zhí)行各個(gè)環(huán)節(jié)的執(zhí)行時(shí)間 ,安裝方式非常簡(jiǎn)單,通過(guò)nuget直接安裝即可。

Glimpse

http://getglimpse.com/

http://nuget.org/List/Packages/Glimpse

What is Glimpse

At its core Glimpse allows you to debug your web site or web service right in the browser. Glimpse allows you to "Glimpse" into what's going on in your web server. In other words what Firebug is to debugging your client side code, Glimpse is to debugging your server within the client. 
Fundamentally Glimpse is made up of 3 different parts, all of which are extensible and customizable for any platform:

Glimpse Server Modules – Code on the web server that collects meta data and sends it to the client.

Glimpse Protocol – A specification of that meta data.

Glimpse Client Side Viewer – Code on the web page or in the browser that takes the meta data from the server and displays it to the user.

在官網(wǎng)上的說(shuō)明,目前Glimpse支持ASP.NET WebForm與ASP.NET MVC。

Glimpse有著類(lèi)似firefox的Firebug的外觀,可以在執(zhí)行功能后隨時(shí)的展開(kāi)或是收闔,但是Glimpse不是任何瀏覽器的插件,Glimpse是一個(gè)依賴jQuery所建立的plugin,所以你的網(wǎng)站必須要引入使用jQuery,而瀏覽器則是不限定,根據(jù)官網(wǎng)所顯示的信息,Glimpse可以支持多種的瀏覽器:Chrome 12, Firefox 4 and IE9。

使用NuGet安裝Glimpse

NuGet上面的Glimpse package目前只有支持ASP.NET MVC3

安裝完成后,也會(huì)一并安裝Glimpse for ASP.NET Beta(),安裝完成之后會(huì)在方案中新建一個(gè)文件夾“App_Readme”,里面有兩個(gè)Readme文件,其中“glimpse.readme.txt” 的檔案內(nèi)容里有詳細(xì)說(shuō)明,說(shuō)明如何修改Web.Config以及功能介紹

通過(guò)NugGet安裝Glimpse,在Web.Config加了哪些東西

基本上安裝完成后就可以使用了,但在使用之前,先來(lái)看看Web.Config有多了什么,在一開(kāi)始的configSections中增加了「glimpse」的設(shè)定

然后在system.web的httpModules與httpHandlers都有增加,另外在system.webServer的modules與handlers中也有增加

而在Web.Config的最后面有多了一個(gè)glimpse的section,在這個(gè)Section中,可以針對(duì)不同的情境去改變?cè)O(shè)定,默認(rèn)的設(shè)置是enabled=”true”,默認(rèn)是把Glimpse的功能給開(kāi)啟

在glimpse.readme.txt中就有說(shuō)明,glimpse的Section如何做設(shè)定:

The following configuration values are allowed for Glimpse in your web.config:

<glimpse enabled="true" 
    requestLimit="5" 
    loggingEnabled="false"
    ipForwardingEnabled="false"
    cacheEnabled="true"> 
    <!-- 
        set enabled to false to completely turn off Glimpse. 
        requestLimit specifies the max number of requests Glimpse will save. 
        enableLogging (false by default) if you experience problems with Glimpse 
        ipForwardingEnabled (false by default) will force Glimpse to validate IP addresses based on the value in the HTTP_X_FORWARDED_FOR header. Useful if your server is behind a proxy or load balancer.
        cacheEnabled (true by default) Glimpse will tell browsers to cache static files by default
    -->
    <ipAddresses> <!-- List of IP addresses allowed to get Glimpse data. Optional. localhost (IPv4 & IPv6) by default -->
        <add address="127.0.0.1" />
        <add address="::1" />
    </ipAddresses>
    <contentTypes><!-- List of content types Glimpse will provide data for. Optional  text/html and application/json by default -->
        <add contentType="text/html"/>
    </contentTypes>
    <pluginBlacklist><!-- List of plugins for Glimpse to ignore. Optional. By default all plugins will load -->
        <add plugin="Glimpse.Core.Plugin.Request"/>
        <add plugin="Glimpse.Core.Plugin.MetaData"/>
    </pluginBlacklist>
    <environments><!-- List of environments your application runs in. Used for the new environment switcher feature. Optional. By default environment information will no be shown -->
        <add name="Dev" authority="localhost:33333" />
        <add name="Prod" authority="getglimpse.com" />
    </environments>
    <urlBlacklist><!-- Glimpse will ignore all requests made to URI's that match any regular expression in this list. Optional. By default all URI's will be considered for Glimpse inspection. -->
        <add url="{regex}"/>
        <add url="{regex}"/>
    </urlBlacklist>
</glimpse>

要開(kāi)啟使用Glimpse相當(dāng)簡(jiǎn)單,只要輸入「http://你的網(wǎng)站網(wǎng)址/Glimpse.axd」就可以了,就會(huì)進(jìn)入到下面的頁(yè)面

接著回到網(wǎng)站的頁(yè)面,可以看到頁(yè)面的右下角出現(xiàn)一個(gè)圖標(biāo),直接點(diǎn)擊圖標(biāo)

其中會(huì)比較常用的有Ajax, Config, Enviroment, Execution, Request, Server, Trace, Views。

與ELMAH所遇到的問(wèn)題是一樣的,那就是預(yù)設(shè)安裝后,都是可以匿名瀏覽,對(duì)于網(wǎng)站的安全性來(lái)說(shuō)是個(gè)相當(dāng)大的威脅,尤其是Glimpse的Config,會(huì)把Web.Config的所有信息都完整呈現(xiàn),所以這一篇文章就要來(lái)說(shuō)明如何讓Glimpse在登入后才可以使用。

更改Web.Config的glimpse配置

在Glimpse所提供的readme.txt中就已經(jīng)有說(shuō)明如何修改,讓啟用Glimpse是必須要登入后才可以,

<glimpse enabled="true" loggingEnabled="true" />

可以加上loggingEnabled=”true”,但是這樣還是不夠,必須要再進(jìn)一步去阻止匿名用戶直接進(jìn)入,所以修改如下:

<glimpse enabled="true" loggingEnabled="true" />

<location path="Glimpse.axd">

<system.web>

<authorization>

<deny users="*" />

</authorization>

</system.web>

</location>

如果說(shuō)要再進(jìn)一步防護(hù)的話,可以指定哪些使用者才能使用或是限定哪些角色權(quán)限的使用者才能夠使用,于是我的修改如下:

<glimpse enabled="true" loggingEnabled="true" />

<location path="Glimpse.axd">

<system.web>

<authorization>

<allow roles="Admin"/>

<deny users="*" />

</authorization>

</system.web>

</location>

如此一來(lái)就阻止匿名用戶使用Glimpse功能,而且也只限定用有Admin角色權(quán)限的使用者才能夠使用,不是Admin角色的使用者進(jìn)入「http://你的網(wǎng)址/Glimpse.axd」時(shí)就會(huì)直接導(dǎo)回首頁(yè)。詳細(xì)的Glimpse Section的設(shè)定,我建議要詳讀官網(wǎng)的說(shuō)明:

glimpse – Document – Configuration 
http://getglimpse.com/Help/Configuration

另外要說(shuō)明的是,如果你只希望在開(kāi)發(fā)環(huán)境去啟用glimpse的功能,而在正式環(huán)境不希望去啟用glimpse時(shí),并不需要上線前把glimpse給移除,只需要去更改glimpse Section的設(shè)定就可以,<glimpse enabled="false" loggingEnabled="true" />把原本enabled=”true” 改成 enabled=”false” 就可以。

其實(shí)glimpse可以結(jié)合ELMAH,讓ELMAH所記錄到的錯(cuò)誤訊息于glimpse中顯示,在系統(tǒng)的登入認(rèn)證后,只要啟用glimpse就可以去看ELMAH的紀(jì)錄數(shù)據(jù),不必再另外進(jìn)入ELMAH,

接下來(lái)介紹如何透過(guò)NuGet安裝Elmah plugin for Glimpse以及部分的修改設(shè)定。

請(qǐng)記得,你的網(wǎng)站必須示已經(jīng)安裝了 ELMAH 以及 Glimpse,NuGet中搜索 Glimpse就可以找到「Elmah plugin for Glimpse」

安裝完成之后,在你的網(wǎng)站上開(kāi)啟glimpse后就可以在glimpse的功能窗口中看到「Elmah」的頁(yè)簽.

    相關(guān)評(píng)論

    閱讀本文后您有什么感想? 已有人給出評(píng)價(jià)!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過(guò)難過(guò)
    • 5 囧
    • 3 圍觀圍觀
    • 2 無(wú)聊無(wú)聊

    熱門(mén)評(píng)論

    最新評(píng)論

    發(fā)表評(píng)論 查看所有評(píng)論(0)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過(guò)審核才能顯示)
    推薦文章

    沒(méi)有數(shù)據(jù)

    最新文章
      沒(méi)有數(shù)據(jù)