Umbraco - 在所选页面上禁用ASP.NET SessionState

时间:2016-11-11 11:47:20

标签: asp.net session umbraco

我有一个相当大的Umbraco实例,其中包含营销页面和Web应用程序的混合。

大约10%的Content节点页面是Web应用程序页面。我想为其余90%不需要它的页面禁用SessionState,以提高性能并避免争用。我们正在使用SQL Server会话。

有没有办法做到这一点?就我能够找到的情况而言,在每页基础上禁用SessionState的唯一方法是在.aspx EnableSessionState="False"声明中包含@Page。但是当Umbraco生成虚拟.aspx页面时,我无法通过任何方式来实现这一点。

在代码中似乎没有任何方式可以实现它。

2 个答案:

答案 0 :(得分:1)

由于您似乎在Umbraco(而不是MVC)中使用嵌套的webforms母版页,因此您只剩下一个选项,因为Masterpages不具备公共属性' enablesessionstate'

据我所知,你有一个选项可以处理web.config中的会话状态

有两种情况,隐式和显式

明确排除

<!-- globally enbabled sessionstate -->
<system.web>
    <sessionState mode="On" />
</system.web>

<!-- disable on specific paths -->
<location path="path/whatever">
    <system.web>
        <sessionState mode="Off" />
    </system.web>
</location>

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

<!-- globally disabled sessionstate -->
<system.web>
    <sessionState mode="Off" />
</system.web>

<!-- enable on specific paths -->
<location path="path/whatever">
    <system.web>
        <sessionState mode="On" />
    </system.web>
</location>

<location path="otherplace">
    <system.web>
        <sessionState mode="On" />
    </system.web>
</location>

答案 1 :(得分:0)

如果您正在使用网络表单,您可能会挂钩页面加载事件并检查页面模板,然后打开或关闭会话状态?

您使用的是哪个版本的Umbraco?