ASP.NET Web应用程序会话问题

时间:2013-06-04 20:57:22

标签: c# asp.net .net session iis

我开发了一个安装在“实时”IIS 7.5上的ASP.NET Web应用程序。 Web应用程序使用http会话在登录用户的页面之间传递参数。这在我的开发机器上运行得很好(在VS2010 IDE中使用本地IIS测试),但是当这个Web应用程序上传到客户端的IIS并且他们开始使用它(谷歌浏览器和IE浏览器)时,在某些随机时刻会话变量似乎消失。我的第一个猜测是通过添加以下行来增加通过web.config文件的会话超时设置:

<configuration>
 <system.web>
  <sessionState timeout="20"></sessionState>
 </system.web>
</configuration>

但这似乎没有解决问题。所以它让我想知道,会议有哪些其他设置?像内部文件夹那样保持所有会话的缓存在实际的IIS上溢出?有什么想法吗?

编辑:按照@wy __的建议,我修改了web.config文件并开始在我的开发机器上看到同样的问题。这是我现在拥有的整个system.web部分:

  <system.web>
    <compilation targetFramework="4.0" debug="false"/>
    <pages validateRequest="false"/>
    <httpRuntime requestValidationMode="2.0" executionTimeout="110" maxRequestLength="262144"/>
    <sessionState timeout="20" cookieless="true" regenerateExpiredSessionId="true"></sessionState>
  </system.web>

我也检查过,只有一个w3wp.exe进程正在运行。

1 个答案:

答案 0 :(得分:1)

默认情况下,会话使用Cookie来跟踪用户会话。如果您不确定用户是否关闭它们,则可以配置无cookie会话。

<configuration>
    <system.web>
        <sessionState cookieless="true" regenerateExpiredSessionId="true" />
    </system.web>
</configuration>