【问题标题】:Why don't ASP.Net handlers support session by default为什么 ASP.Net 处理程序默认不支持会话
【发布时间】:2013-05-09 19:31:58
【问题描述】:

我知道为了让 ASP.Net 处理程序支持会话状态,您需要同时实现 IHttpHandlerIRequireSessionState,但为什么默认情况下不提供会话状态?如果出于性能原因,那么有一个像IDoesNotRequireSessionState这样的接口不是更好吗?

【问题讨论】:

    标签: asp.net session-variables ihttphandler


    【解决方案1】:

    这是因为会话阻塞了异步操作,并且句柄通常用于长时间操作,例如文件的制作和下载 - 如果您保持会话长时间操作,则会阻塞其余页面。

    句柄也是根据获得响应所需的最低限度的想法制作的。

    关于会话锁:
    Web app blocked while processing another web app on sharing same session
    jQuery Ajax calls to web service seem to be synchronous
    ASP.NET Server does not process pages asynchronously
    Replacing ASP.Net's session entirely

    【讨论】:

      【解决方案2】:

      如果出于性能原因,那么最好有一个 IDoesNotRequireSessionState 之类的接口?

      绝对不是,因为每个实现处理程序的人都必须知道这个接口的存在。就性能而言,从 ASP.NET 获得的 HTTP 处理程序是最快的。因此,如果您想用诸如会话之类的垃圾来污染它,那么您最好明确地这样做,并为此承担全部责任,通过实现一些您应该知道的接口。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-26
        • 2012-12-29
        • 2010-09-29
        • 2014-06-16
        • 1970-01-01
        • 2011-06-20
        相关资源
        最近更新 更多