|
|
1
26
根据您所做的,我不希望看到仅仅使用httphandler有很大的改进。我将从编写httphandler开始,看看它是如何执行的。如果您需要更快,请尝试在处理请求时更仔细地查看您实际正在做的事情,并查看可以优化的内容。例如,如果要对数据库进行任何日志记录,请尝试写入本地数据库,而不是通过网络。如果它仍然不够快,那么可以考虑写一些低层次的东西。不过,在那之前,我会坚持你最容易写的东西。 作为参考,我在ASP.NET中编写了一个广告服务器(使用httphandlers),它可以在0-15毫秒的加载时间内为广告提供服务(包括定位和将印象记录到本地数据库)。我以为我做了很多处理,但这是一个很好的响应时间imho。 几个月后更新 : 如果清除默认情况下包含的所有httpmodules,这将消除相当数量的开销。默认情况下,通过机器级web.config文件在每个站点中包含以下httpmodules:
正如我上面所说,我的广告服务器不使用任何这些,所以我刚刚在该应用的web.config中完成了这项工作:
如果您需要其中的一部分,但不是全部,您可以删除不需要的部分:
ASP.NET MVC注意: ASP.NET MVC需要会话状态模块,除非您执行特定的解决方法。有关详细信息,请参阅此问题: How can I disable session state in ASP.NET MVC? iis7的更新: 不幸的是,在iis7中事情并不那么简单。这里是 how to clear HTTP Modules in IIS7 |
|
|
2
1
我不确定您的具体场景是什么,但是如果您的页面所做的只是处理一些数据,那么您根本不需要一个ASPX页面或HTTP处理程序。您可以编写一个asmx Web服务或wcf服务来完成您需要的工作,这很可能会减少开销。WCF服务甚至不必托管在ASP.NET中。您可以从Windows服务或控制台应用程序托管它,并使用命名管道在进程中调用它。这可能会大大减少调用数据处理代码的开销。 |
|
|
3
0
如果您真的必须使用ASP.NET,您还可以直接钩住authorizeRequest步骤并从中截取请求,进行处理并编写 多恩 直接回复。 |