c# - ASP.NET Web 应用程序 session 问题

标签 c# asp.net .net session iis

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

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

但这似乎并不能解决问题。所以这让我想知道,关于 session 还有哪些其他设置?类似于一个内部文件夹,用于保存在实际 IIS 上溢出的所有 session 的缓存?有什么想法吗?

编辑:按照@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 进程在运行。

最佳答案

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

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

关于c# - ASP.NET Web 应用程序 session 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16927342/

相关文章:

c# - 将 PowerBuilder 应用程序移植到 .NET

c# - 我可以创建一个从不参与表单例份验证的 HttpHandler 吗?

c# - 如何从我无法直接访问的线程中捕获异常?

c# - 这是根据目录名称命名命名空间的好习惯吗

c# - 将图标放入 XAML 椭圆

c# - 设计视角 : Static Methods vs. 类

c# - EF Linq to Entities 在实体集上调用 ToList() 生成包含多个左外连接的 SQL 命令

c# - 如何深入比较不可序列化的对象?

c# - Ef Core 3 实体类型 XOrder 不能映射到表,因为它派生自 Order Only 基本实体类型可以映射到表

javascript - 将 MVC 模型序列化为 JSON