使用MiniProfiler调试ASP.NET MVC网站性能,MiniProfiler可以很好的处理网站后端每个处理时间的事件,但是MiniProfiler是无法远程做监测的动作,MiniProfiler只能够监测本地端的动作,所以MiniProfier比较适合开发期间使用。

在开发ASP.NET WebFrom时,如果想要追踪每个页面的执行状况与效能的话,其实是可以使用“Trace”功能,如此一来就可以在每个页面的下方显示页面执行时的完整详细信息,包括前端传送的Http Request、所有的Session、Cookie等,对于开发时期来说,这些信息可以帮助我们在除错时候可以掌握确切的信息,然而系统上线之后,Trace功能势必要关闭,而单靠ELMAH记录错误讯息也无法完全掌握,因为有的时候执行正常并不表示功能正常,例如运行时间过慢、路径错误等,

接下来就来介绍“Glimpse”,除了具有Trace的功能外,也可以结合Forms Authentication的登入认证,让我们在系统上线之后,一样可以实时让开发人员追踪页面执行的各项信息。

Glimpse是一款.NET下的性能测试工具,支持asp.net 、asp.net mvc, EF等等,优势在于,不需要修改原项目任何代码,且能输出代码执行各个环节的执行时间 ,安装方式非常简单,通过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.

在官网上的说明,目前Glimpse支持ASP.NET WebForm与ASP.NET MVC。

Glimpse有着类似Firefox的Firebug的外观,可以在执行功能后随时的展开或是收阖,但是Glimpse不是任何浏览器的插件,Glimpse是一个依赖jQuery所建立的plugin,所以你的网站必须要引入使用jQuery,而浏览器则是不限定,根据官网所显示的信息,Glimpse可以支持多种的浏览器:Chrome 12, Firefox 4 and IE9。

使用NuGet安装Glimpse

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

安装完成后,也会一并安装Glimpse for ASP.NET Beta(),安装完成之后会在方案中新建一个文件夹“App_Readme”,里面有两个Readme文件,其中“glimpse.readme.txt” 的档案内容里有详细说明,说明如何修改Web.Config以及功能介绍

通过NugGet安装Glimpse,在Web.Config加了哪些东西

基本上安装完成后就可以使用了,但在使用之前,先来看看Web.Config有多了什么,在一开始的configSections中增加了「glimpse」的设定

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

而在Web.Config的最后面有多了一个glimpse的section,在这个Section中,可以针对不同的情境去改变设定,默认的设置是enabled=”true”,默认是把Glimpse的功能给开启

在glimpse.readme.txt中就有说明,glimpse的Section如何做设定:

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>

要开启使用Glimpse相当简单,只要输入「http://你的网站网址/Glimpse.axd」就可以了,就会进入到下面的页面

接着回到网站的页面,可以看到页面的右下角出现一个图标,直接点击图标

其中会比较常用的有Ajax, Config, Enviroment, Execution, Request, Server, Trace, Views。

与ELMAH所遇到的问题是一样的,那就是预设安装后,都是可以匿名浏览,对于网站的安全性来说是个相当大的威胁,尤其是Glimpse的Config,会把Web.Config的所有信息都完整呈现,所以这一篇文章就要来说明如何让Glimpse在登入后才可以使用。

更改Web.Configglimpse配置

在Glimpse所提供的readme.txt中就已经有说明如何修改,让启用Glimpse是必须要登入后才可以,

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

可以加上loggingEnabled=”true”,但是这样还是不够,必须要再进一步去阻止匿名用户直接进入,所以修改如下:

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

<location path="Glimpse.axd">

<system.web>

<authorization>

<deny users="*" />

</authorization>

</system.web>

</location>

如果说要再进一步防护的话,可以指定哪些使用者才能使用或是限定哪些角色权限的使用者才能够使用,于是我的修改如下:

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

<location path="Glimpse.axd">

<system.web>

<authorization>

<allow roles="Admin"/>

<deny users="*" />

</authorization>

</system.web>

</location>

如此一来就阻止匿名用户使用Glimpse功能,而且也只限定用有Admin角色权限的使用者才能够使用,不是Admin角色的使用者进入「http://你的网址/Glimpse.axd」时就会直接导回首页。详细的Glimpse Section的设定,我建议要详读官网的说明:

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

另外要说明的是,如果你只希望在开发环境去启用glimpse的功能,而在正式环境不希望去启用glimpse时,并不需要上线前把glimpse给移除,只需要去更改glimpse Section的设定就可以,<glimpse enabled="false" loggingEnabled="true" />把原本enabled=”true” 改成 enabled=”false” 就可以。

其实glimpse可以结合ELMAH,让ELMAH所记录到的错误讯息于glimpse中显示,在系统的登入认证后,只要启用glimpse就可以去看ELMAH的纪录数据,不必再另外进入ELMAH,

接下来介绍如何透过NuGet安装Elmah plugin for Glimpse以及部分的修改设定。

请记得,你的网站必须示已经安装了 ELMAH 以及 Glimpse,NuGet中搜索 Glimpse就可以找到「Elmah plugin for Glimpse」

安装完成之后,在你的网站上开启glimpse后就可以在glimpse的功能窗口中看到「Elmah」的页签.

相关链接:

http://www.hanselman.com/blog/NuGetPackageOfTheWeek5DebuggingASPNETMVCApplicationsWithGlimpse.aspx

http://stackoverflow.com/questions/5746444/should-i-deploy-glimpse-to-the-production-site

使用 Glimpse 调试 ASP.NET MVC 应用

Elmah for Glimpse – Best of Both Worlds

转载于:https://www.cnblogs.com/aaa6818162/archive/2012/12/31/2840694.html

使用Glimpse 监测ASP.NET MVC网站相关推荐

  1. 监测ASP.NET MVC 网站

    使用MiniProfiler调试ASP.NET MVC网站性能,MiniProfiler可以很好的处理网站后端每个处理时间的事件,但是MiniProfiler是无法远程做监测的动作,MiniProfi ...

  2. 阿里云 Windows Server 2012 r2 部署asp.net mvc网站 平坑之旅

    做了多年的Web开发工作,网站部署也不在话下,可每次部署却并不是十分顺利,将本次在阿里云服务器上部署asp.net mvc网站遇到的问题记录如下. 平台是阿里云ECS,操作系统是 Windows Se ...

  3. mvc如何应用nuget包_第五周NuGet软件包-使用Glimpse调试ASP.NET MVC应用程序

    mvc如何应用nuget包 Hey, have you implemented the NuGet Action Plan? Get on it, it'll take only 5 minutes: ...

  4. 总结一下ASP.NET MVC 网站的部署问题

    近日,准备把MVC建了一个新的测试站点部署到IIS上面,结果没想到出现了一系列的问题和错误,准备记录一下. 第一个问题,就是如何将MVC的站点部署到IIS上去? 现在我的系统是Windows 7,II ...

  5. 针对Linux ASP.NET MVC网站中 httpHandlers配置无效的解决方案

    近期有Linux ASP.NET用户反映,在MVC网站的Web.config中添加 httpHandlers 配置用于处理自定义类型,但是在运行中并没有产生预期的效果,服务器返回了404(找不到网页) ...

  6. [转]Asp.net mvc 网站之速度优化 -- 页面缓存

    网站速度优化的一般方法 由于网站最重要的用户体验就是速度,特别是对于电子商务网站而言. 一般网站速度优化会涉及到几个方面: 1. 数据库优化 - 查询字段简历索引,使用数据库连接池和持久化,现在还有种 ...

  7. 利用Powershell自动部署asp.net mvc网站项目 (一)

    这一篇中我们会写一些关于自动化部署的代码.我们会使用 Powershell 书写这类代码. 你将发现这篇文章中涉及的东西非常具体,有的要求甚至相当苛刻且可能不具有通用性.这是因为部署从来都是跟环境打交 ...

  8. ASP.NET MVC网站学习问题积累(一)

    最近工作压力比较大,不得已开始自学C#.同时网站开发业务开展迫在眉睫,只能先从ASP.NET学起.回想一下,连C#和ASP.NET的关系都没有明白,就被赶鸭子上架了...我觉得这将是我工作以来最具有戏 ...

  9. ASP.NET MVC网站使用新浪微博账号登录

    首先到http://open.weibo.com/development 注册一个开发者账号. 然后可以点微连接--网站接入 会分配App Key 和App Secret 然后点高级信息 在这里设置回 ...

最新文章

  1. python基础实例-Python 练习实例14
  2. python循环变颜色_在Python中使用循环变量在matplotlib中指定颜色
  3. 练习2.13 不用库函数,写一个高效计算ln N的C函数
  4. 消息队列RabbitMQ入门与5种模式详解
  5. 反卷积(Deconvolution)、上采样(UNSampling)与上池化(UnPooling)加入自己的思考(pytorch函数)(二)
  6. 集合框架-ArrayList源码学习
  7. 如何看待0.5元可买到身份匹配的人脸数据?
  8. endnote安装_EndNote X8 系列教程(一):软件介绍与安装
  9. 什么叫做蓝牙技术(转贴)
  10. 关于XML字符串和XML Document之间的转换
  11. Google 周三宣布新版Google Trend上线
  12. 在线绘制网络拓扑图操作方法分享
  13. 企业邮箱登录入口有哪些?
  14. 【Android 开发教程】检测屏幕的方向
  15. 小程序发送短信验证码完整工具
  16. 微信小程序个性头像、国庆头像、新年头像、圣诞头像等合成
  17. java thrift异步调用_thrift异步调用 - thrift-cob_style-tnonblockingserver - ItBoth
  18. 字符串中的 ↵ 回车符替换
  19. 应届生和往届生,报名条件区别汇总!
  20. webpack打包策略、treeShaking

热门文章

  1. 离线存储及实例留言板
  2. OpenStack Kolla-Ansible部署Octavia负载均衡服务
  3. java模拟取款_一次java作业,模拟取款机
  4. Echarts formatter
  5. 大数据深入应用 标签管理系统让精准化个性化营销成为可能
  6. Vue学习笔记1-什么是Vue
  7. 无人机集群作战仿真研究现状及在城市作战中的应用前景(附最新无人集群项目内容)
  8. inter uhd graphics630显卡驱动_AMD发布19.8.1版本驱动,修复了RX 5700的一堆问题
  9. python123绘制五角星_Python的画五角星
  10. 从键盘输入小明的成绩,然后根据成绩所在区间依次给出奖励