【问题标题】:Disable Session from Master Page从母版页禁用会话
【发布时间】:2009-06-06 00:49:26
【问题描述】:

在 ASP.NET 中,我想禁用母版页中的会话状态,但是 @Master 指令不像 @Page 那样具有 EnableSessionState 属性。有什么解决办法吗?

【问题讨论】:

    标签: asp.net session master-pages


    【解决方案1】:

    要从 russau 中断的地方继续,如果您只需要配置一部分页面,那么您可以使用位置配置来完成。您需要将需要关闭会话状态的页面放在一个公共位置,然后使用以下命令(其中路径为 ~/nosessionstate/):

    <location path="nosessionstate">
        <system.web>
            <sessionState mode="Off" />
        </system.web>
    </location>
    

    如果您无法将所有页面组合到一个位置,则可以为每个路径设置多个位置元素。但是,如果您的页面必须与需要会话状态的其他页面组合在一起,那么您唯一的选择就是在每个页面的基础上进行配置。

    【讨论】:

    • 我很确定这会引发“在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的部分是错误的。”如果此路径未在 IIS 中配置为应用程序,则会出现异常。
    【解决方案2】:

    EnableSessionState 需要在页面级别完成 - 因为您的母版页将用于许多页面。

    您要关闭整个网站的会话吗?在您的 web.config 中,您可以这样做:

    <sessionState  mode="off" />
    

    http://msdn.microsoft.com/en-us/library/h6bb9cz9.aspx

    【讨论】:

    • 感谢您的回答。实际上我不想完全禁用整个站点的会话。但仅适用于一些不需要它的页面,因为它会提高性能。顺便说一句,我正在使用 InProc 模式;是否为某些不需要它的页面禁用会话,以提高性能?我确信它会影响 StateServer 和 SqlServer,但是 InProc 呢?
    • 我没有测试差异 - 但我猜这是一个微不足道的改进。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-24
    • 2021-09-16
    • 1970-01-01
    相关资源
    最近更新 更多