当前位置:  开发笔记 > 后端 > 正文

比HttpHandlers更快的东西?

如何解决《比HttpHandlers更快的东西?》经验,为你挑选了1个好方法。

在ASP.NET网站上执行方法的最快方法是什么?

场景非常简单:我有一个方法,应该在网页被击中时执行.页面上没有其他任何事情发生,唯一呈现的输出是"完成"消息.我希望处理尽可能快.

每一次点击都是唯一的,因此缓存不是一种选择.

我的计划是使用HttpHandler并在web.config(mypage.ashx)中配置它,而不是常规的.aspx页面.这应该会显着减少开销.

所以我的问题是:有没有比使用HttpHandlers更快的方法来实现这一目标?



1> Daniel Schaf..:

根据你正在做的事情,我不希望看到比使用HttpHandler有很多改进.我首先编写HttpHandler并查看它的执行情况.如果您需要更快,请在处理请求并查看可以优化的内容时,仔细查看您实际执行的操作.例如,如果您正在对数据库进行任何记录,请尝试写入本地数据库而不是通过网络.如果它仍然不够快,那么可能会考虑写一些较低级别的东西.在那之前,我会坚持用最简单的方式来写.

作为参考,我在ASP.NET中编写了一个广告服务器(使用HttpHandlers),可以在0-15ms内加载广告(包括定位和记录展示到本地数据库).我以为我正在做相当多的处理 - 但这是一个非常好的响应时间恕我直言.


几个月后更新:

如果清除默认包含的所有HttpModule,这将消除相当大的开销.默认情况下,通过机器级web.config文件在每个站点中包含以下HttpModule:

的OutputCache

会话(用于会话状态)

WindowsAuthentication

FormsAuthentication

PassportAuthentication

RoleManager

UrlAuthorization

FileAuthorization

AnonymousIdentification

轮廓

的ErrorHandler

ServiceModel

就像我上面说的,我的广告服务器没有使用其中任何一个,所以我刚刚在该应用程序的web.config中完成了这个:


   

如果你需要其中一些,但不是全部,你可以删除你不需要的那些:


   
   

ASP.NET MVC注意: ASP.NET MVC需要会话状态模块,除非您执行特定的操作来解决它.有关更多信息,请参阅此问题:如何在ASP.NET MVC中禁用会话状态?

IIS7的更新:遗憾的是,IIS7中的事情并不那么简单.以下是如何清除IIS7中的HTTP模块

推荐阅读
夏晶阳--艺术
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有