asp.net会话超时问题

时间:2011-08-26 14:09:09

标签: c# asp.net asp.net-mvc-3 asp.net-membership

我的asp.net mvc项目出现问题仅在几分钟后超时。这特别令人讨厌,因为我有一个非常复杂的上传和导入过程,当我退出时,它会失败。我目前使用asp.net成员资格提供程序进行身份验证。

我尝试了一些我在这个网站和其他网站上看到的东西,但无济于事。以下是我目前在网络配置中的内容:

<location path="Admin/Upload">
   <system.web>
      <httpRuntime executionTimeout="1200"/>
   </system.web>    
</location>

<system.web>       
<sessionState mode="InProc" timeout="20" cookieless="false" />

<authentication mode="Forms">
   <forms loginUrl="~/Account/LogOn" timeout="20" />
</authentication>

<add name="ConnectionString" providerName="System.Data.SqlClient" connectionString="Server=SERVERNAME;Database=DBNAME;User Id=USER;Password=PASSWORD;timeout=30;MultipleActiveResultSets=True" />

我确信在我添加会话状态超时前超时只有一分钟,然后它上升到2分钟,但不能是100%。

我想过用这个:

<lifetime leaseTime="15M"/>

...但不是百分之百确定如何实施它 - 任何人都有成功,或者知道我可以尝试的其他东西?

由于

编辑:我正在使用云托管解决方案,但只有一个控制面板 - 无法访问IIS

更新:我现在尝试添加终身租约时间,但没有任何区别:

  <system.runtime.remoting>
    <application>
      <lifetime leaseTime="20M"  />
    </application>
  </system.runtime.remoting>
</configuration>

更新2: 好的,我已经编辑了标题和网络配置值以反映我最近的努力,但我仍然在苦苦挣扎。我与托管公司交谈,他将连接超时设置为20分钟。然而,会议在10分钟后结束。还有什么我可以尝试的吗?

我到了那里,但我想要20分钟!

2 个答案:

答案 0 :(得分:1)

终身租约时间标记位于应用程序标记中。

<application>
   <lifetime leasetime = "15M"/>

我从来没有真正使用它,但是如果它像其他超时一样,如果你最后需要M的话。这是纯粹的猜测。您还应该能够将其设置为“0”,以使其生命周期为“永远”

至于会话超时,看起来应该设置为100分钟。但是,它应该位于<configuration>标记

修改 与问题完全无关。但我喜欢你的运行时执行超时“超过9000”

答案 1 :(得分:0)

是的,我得到了一个解决方案,但这不是我所期待的。

事实证明我错误地使用了aspnet Membership Provider。我使用的是像我之前使用的会员系统并登录,然后将UserId设置为会话变量并在整个站点中使用它。然后我发现使用它的方式不正确,并将其更改为User.Identity.IsAuthenticatedMembership.GetUser().ProviderUserKey的组合。

它不再是超时而且一切都很好。不管怎样,谢谢。