首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >InProc会话超时不工作

InProc会话超时不工作
EN

Stack Overflow用户
提问于 2015-10-22 12:07:28
回答 2查看 5K关注 0票数 2

我正在使用asp .NET MVC应用程序,我已经配置了

代码语言:javascript
复制
<system.web><sessionState mode="InProc" timeout="90" /></system.web>

但是看起来会话仍然有效,只有20分钟,而不是90分钟,为什么?

我怎样才能使它比20更有效(我想是默认的)

我检查了应用程序池中的空闲时间,它是20,这是超时的原因吗?如果是,我如何从配置文件中重写此文件?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-10-26 09:28:03

因为IIS重新启动池(包括会话),每个x分钟都没有活动,配置为池本身设置中的空闲超时,如果用户在应用程序中设置了90分钟会话,如果没有活动,IIS可以在这90分钟结束之前重新启动池。示例:

会话是60分钟后在app.config中配置30分钟空闲,池本身只循环一个人使用该应用程序。

下午1:00:用户连接,他在10分钟内导航,然后在页面上什么也不做(例如,不提交就填充一个非常大的表单,也不需要ajax调用。此时,用户有会话“打开”直到凌晨1点+ 10分钟+ 60分钟配置=凌晨1点10分,他试图按submit按钮,但它不能工作,因为应用程序池在1.40 (1.10 + 30分钟空闲)循环,所以用户丢失会话。

如果这可能是用户在应用程序上的错误,则空闲时间必须大于会话时间。

票数 3
EN

Stack Overflow用户

发布于 2015-10-22 12:40:03

您正在发布的配置似乎是正确的。

也请检查IIS配置。来自 TechNet链接:

  1. 打开IIS管理器并导航到要管理的级别。
  2. 在“功能”视图中,双击ASP.
  3. 在ASP页面的“服务”下,展开“会话属性”。
  4. 在“超时”字段中,以hh:mm:ss格式输入超时值.例如,输入00: 15 :00持续15分钟。
  5. 在“操作”窗格中,单击“应用”。

如果您使用的是表单身份验证,请记住,它使用的是他自己的超时,可以设置如下:

代码语言:javascript
复制
<system.web>
    <authentication mode="Forms">
          <forms timeout="90"/>
    </authentication>

    <sessionState mode="InProc" timeout="90"  />
</system.web>
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33280661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档