【问题标题】:handling sessionstate in asp.net在 asp.net 中处理会话状态
【发布时间】:2013-09-18 23:32:29
【问题描述】:

我需要在随机注销时调试的应用程序之一的 web.config 中有以下会话状态条目

<sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" cookieless="false" timeout="20"/>

我检查了网络服务器,win 2003,Asp.net 状态服务没有运行,也没有 sql server 实例正在运行。

根据 web.config 中的此条目,会话超时是多少。 20分钟?我们是否必须运行 Asp.net 状态服务才能使用 stateConnectionString?

【问题讨论】:

  • "我们是否必须运行 Asp.net 状态服务才能使用 stateConnectionString?" 你的意思是 "我们必须运行 Asp.Net 状态服务吗?使用 stateConnectionString?”?
  • 是的,这就是我想知道的。另外,当我们提供 sqlConnectionString 时,是否需要有 sql server 实例和数据库可用于记录会话?
  • 当我们没有运行这两个服务时,所有会话是否会在内存中停留 20 分钟?

标签: c# asp.net


【解决方案1】:

您已将mode 属性设置为InProc,这意味着会话将存储在IIS 工作进程中。这意味着stateConnectionStringsqlConnectionString 可能会被忽略。

如果您想使用其他模式,您应该将 InProc 分别更改为 StateServerSQLServer。更多详情here.

使用 InProc,会话仍应存储 20 分钟,但如果您的工作进程回收(默认情况下每 29 小时发生一次),它将丢失所有会话,因此您可能希望使用 StateServer(ASP .NET State Service 应该启动),或者用于管理登录用户的任务的另一个更持久的选项。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-19
    • 2011-05-24
    • 2011-06-07
    • 2010-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多