Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# asp.net会话超时问题_C#_Asp.net_Asp.net Mvc 3_Asp.net Membership - Fatal编程技术网

C# asp.net会话超时问题

C# asp.net会话超时问题,c#,asp.net,asp.net-mvc-3,asp.net-membership,C#,Asp.net,Asp.net Mvc 3,Asp.net Membership,我的asp.net mvc项目在几分钟后超时时遇到问题。这尤其让人恼火,因为我有一个相当复杂的上传和导入过程,当我注销时就会发生。我目前使用asp.net成员资格提供程序进行身份验证 我尝试了一些我在这个网站和其他网站上看到的东西,但都没有用。以下是我目前在web配置中的内容: <location path="Admin/Upload"> <system.web> <httpRuntime executionTimeout="1200"/>

我的asp.net mvc项目在几分钟后超时时遇到问题。这尤其让人恼火,因为我有一个相当复杂的上传和导入过程,当我注销时就会发生。我目前使用asp.net成员资格提供程序进行身份验证

我尝试了一些我在这个网站和其他网站上看到的东西,但都没有用。以下是我目前在web配置中的内容:

<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" />

我确信在我添加sessionstate超时之前只有一分钟超时,然后它被提升到2分钟,但不能是100%

我想用这个:

<lifetime leaseTime="15M"/>

…但不是100%确定如何实现它-有人在这方面取得了成功,或者知道我可以尝试的其他东西吗

谢谢

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

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

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

更新2: 好的,我已经编辑了标题和web配置值以反映我的最新努力,但我仍在努力。我和主机公司谈过,他们将连接超时设置为20分钟。然而,会议在10分钟后结束。还有什么我可以试试的吗


我快到了,但我想要20分钟

终身租赁时间标签放入应用程序标签中

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

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

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

编辑
与问题完全无关。但我喜欢您的运行时执行超时“超过9000”

对,我找到了解决方案,但这不是我所期望的

结果证明我错误地使用了aspnet成员资格提供商。我像以前使用的会员制一样使用它并登录,然后将UserId设置为会话变量,并在整个站点中使用它。然后我发现这是不正确的使用方法,并将其更改为
User.Identity.IsAuthenticated
Membership.GetUser().ProviderUserKey
的组合


它不再超时,一切都很好。无论如何,谢谢。

您为什么要在ASP.NET MVC应用程序中使用
元素来管理授权,而不是使用
[Authorize]
属性来装饰控制器/操作?您好,Darin。我实际上使用了[Authorize]属性——这只是我昨天在寻找解决方案时添加的一个属性。它何时超时?在上传过程中?闲着的时候?我正在考虑一个应用程序池问题(工作进程被回收…),实际上,两者都是。如果您登录并只停留3分钟以上,然后单击需要授权的链接,它将重定向到登录屏幕。在上传过程中,它会执行一些需要授权的操作,因此在上传/导入完成之前会重定向到登录屏幕。我读过关于工作进程回收问题的文章-在使用共享应用程序池的共享服务器上可以采取任何措施来防止这种情况吗?托管公司认为这不是应用程序池回收,虽然我已经没有其他的想法了…哈-我只是复制并粘贴了代码块-从来没有真正质疑过超时量!关于sessionState阶段-它位于配置标记中。但是几乎整个web配置都是。我看不出粘贴整批代码有什么意义-我只是把代码片段放进去了。好吧,假设你从中复制的代码没有明确的原因来解释为什么必须粘贴它,我猜这是因为他们是一个龙珠Z的粉丝哈哈。你们能让这个工作起来吗?还是仍然有问题发生?是的,不幸的是,问题仍然发生。一生的租赁时间没有任何区别