当前位置: 首页 > 知识库问答 >
问题:

ASP的Azure命名缓存设置。NET会话状态提供程序?

逑兴安
2023-03-14

我们正在尝试更改我们的ASP。NET会话状态在Azure中超时,并注意到ASP。NET会话过期,命名缓存设置过期。换个网站就够了吗。为Azure的自定义会话状态提供程序配置sessionState timeout属性,还是我们需要更改服务配置中的命名缓存设置以影响会话超时?

根据MSDN,HttpSessionState。超时属性是会话状态提供程序终止会话之前请求之间允许的时间量,以分钟为单位。这意味着所有会话对象在每个带有SessionID的请求之后都会获得新的生命。

我们的Windows Azure ASP. NET应用程序由两个生产实例支持,并配置为通过Windows Azure缓存的会话状态提供程序维护分布式共享缓存中的会话状态。以下是配置自定义会话状态提供程序的web.config文件片段:

    <!-- Windows Azure Caching session state provider -->
    <sessionState mode="Custom" customProvider="AFCacheSessionStateProvider">
        <providers>
            <add name="AFCacheSessionStateProvider" type="Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider, Microsoft.Web.DistributedCache" cacheName="default" dataCacheClientName="default" applicationName="AFCacheSessionState"/>
        </providers>
    </sessionState>

    <!-- Windows Azure Caching output caching provider -->
    <caching>
        <outputCache defaultProvider="AFCacheOutputCacheProvider">
            <providers>
                <add name="AFCacheOutputCacheProvider" type="Microsoft.Web.DistributedCache.DistributedCacheOutputCacheProvider, Microsoft.Web.DistributedCache" cacheName="default" dataCacheClientName="default" applicationName="AFCacheOutputCache" />
            </providers>
        </outputCache>
    </caching>

上述设置是在ASP. NET会话状态提供程序配置设置(Windows Azure缓存)中定义的。我们正在使用默认的dataCacheClientName。默认缓存和任何其他命名缓存都在Web角色属性的缓存选项卡上配置。GUI提供了一种友好的方式来维护命名缓存设置,这些设置以高度不可读的方式存储在所选服务配置的. cscfg文件中。请注意默认缓存的驱逐策略、过期类型和生存时间属性。这些属性在如何使用Windows Azure缓存中定义。它们意味着每个缓存对象都有自己的生命周期,而会话对象都应该持续到ASP. NET会话过期。我是否需要更改命名缓存设置以将会话状态超时延长到60分钟,或者会话提供程序会做正确的事情,而不管默认的命名缓存设置如何?如果我还需要调整命名缓存设置,它们应该是什么?

共有1个答案

谭京
2023-03-14

根据这里找到的文档,ASP。Azure缓存的NET Session State Provider显式设置每个对象的过期时间,覆盖配置的缓存过期时间。因此,听起来您只需要担心设置适当的驱逐策略,而州提供者管理到期和生存时间。以下是相关摘录:

在共享缓存中,过期总是绝对的,无法设置默认的过期时间。共享缓存中的项在48小时后过期。但是,您可以使用Put和Add方法在代码中设置显式过期时间。请注意,ASP。NET提供程序自动使用这些重载为会话状态和输出缓存提供显式超时。在这两种情况下,当缓存大小超过共享缓存产品的限制时,缓存中最近使用最少的项将被逐出。

 类似资料:
  • 问题内容: 通过多个实例扩展Web应用程序是Azure云的最大优势之一。为了实现对我们的Web角色云应用程序的多个VM支持,我们正在实现Azure Redis缓存。我们正在使用RedisSessionStateProvider提供程序来维护会话状态。以下是web.config文件中会话管理的配置设置。 我们的问题是会话超时不会随着用户的回发而延长,假设我们的用户在10:00 AM登录到应用程序,那

  • 问题内容: 我的Redis会话状态提供程序在我的ASP.Net网站和在Azure中的Azure网站都可以正常工作。但是我有一个关于配置的问题… 有什么方法可以使用“网站属性”屏幕中的“应用程序设置”(或配置字符串)部分在Azure网站本身中存储该配置? 那将非常方便,因为这意味着我发布时不必修改web.config文件。我已经对连接字符串和应用程序设置进行了此操作,但是我只是没有找到对web.co

  • 问题内容: 我正在使用Azure Redis缓存存储用户会话以在多个实例上共享它。但这不起作用…我已登录,并且负载平衡器将我的请求定向到另一个Web服务器后,我就在另一个服务器上注销了。这是我当前的web.config: 在门户中,我可以看到该应用程序将数据写入高速缓存,以便连接正常工作。如果有帮助,我的身份验证部分将如下所示: 为了使它在多个Web服务器上运行,我还有什么需要做的吗?在教程中,我

  • 我使用Apollo 2.0管理graphQL API调用,并处理react应用程序的全局状态。 我试图创建一个登录屏幕,用户在其中输入用户名和密码,这将发送到我的API进行身份验证,成功后,我想将isLoggedIn的全局状态设置为true。 到目前为止,我能够使用一个使用客户声明的突变来设置全局状态,因此它只与局部状态有关。我有另一个变种,它进行graphQL API调用,验证用户名/密码,然后

  • 需要一些帮助!!我对Drools中的有状态和无状态会话没有清晰的理解。我正在努力理解这一点,所以尝试了一个例子。 我在drools6.5版本上使用有状态和无状态会话测试了下面的drl,在这两种情况下都得到了相同的输出。根据我对无状态会话的理解,它应该只执行第一条规则,当应用程序对象在第一条规则中被修改时,第二条规则不应该被激活(“有效期”)。附加源代码。感谢您在这方面的帮助。

  • 下面是我的app.js文件 下面是我的状态文件 我有一个模板,我想从那里导航到下一个状态 但是只要我点击这个锚标签,它就会把我导航回主页。(不去我打算去的州)。主要问题是URL(我猜)任何帮助都会很感激。