You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular+ASP.NET Web API应用IIS会话超时异常:设15分钟却2-3分钟失效

解决Angular+ASP.NET Web API会话超时异常问题

我来帮你排查这个会话超时的问题——这种前后端同站点部署、带Windows身份验证和ASP.NET模拟的配置下,出现设置的15分钟超时和实际2-3分钟超时不符的情况,通常是几个关键环节没配置到位,咱们一步步来梳理:

1. 检查IIS应用池的回收配置

这是最常见的原因,因为即使你在web.config里设置了session超时,应用池如果提前回收进程,所有会话都会丢失:

  • 打开IIS管理器,找到你的主站点对应的应用池(虚拟目录默认继承主站点的应用池,除非单独指定)
  • 右键→高级设置,找到进程模型下的「闲置超时(分钟)」:默认是20分钟,但如果被改成了2-3分钟,就会导致应用池闲置时提前回收。建议改成15或者更大的数值,或者设为0(禁用闲置回收)
  • 再检查回收下的「定期时间间隔(分钟)」:如果这个值被设成了小于15的数值,应用池会定期强制回收,直接清空会话。默认是1740分钟(29小时),建议保持默认或者设为0禁用定期回收

2. 确认两个web.config的sessionState配置一致性

主站点(Angular)和虚拟目录(API)的web.config都要确保session配置正确:

  • 找到<sessionState>节点,确认timeout="15"(单位是分钟),比如:
    <sessionState mode="InProc" timeout="15" />
    
    • 如果用的是StateServer或SQLServer模式,还要确认对应的服务(ASP.NET State Service或SQL Server)正在运行,并且配置正确
  • 注意:如果用InProc模式,会话是存在应用池进程里的,所以应用池回收必然导致会话丢失,这也是为什么第一步要重点检查应用池配置

3. 验证ASP.NET模拟的权限配置

API启用了ASP.NET模拟,要确保模拟用户有足够的权限保存会话:

  • 模拟用户需要拥有C:\Windows\Microsoft.NET\Framework64\vX.X.XXXXX\Temporary ASP.NET Files(对应你的.NET版本)的读写权限
  • 同时要有站点根目录以及虚拟目录的读写权限,否则会话无法正常持久化,会提前失效

4. 检查Angular请求是否携带会话凭据

Angular默认不会自动携带Windows身份验证的会话Cookie,导致每次请求都被视为新会话,看起来像是超时:

  • 在Angular的HttpClient请求中添加withCredentials: true选项,比如:
    this.http.get('/api/your-endpoint', { withCredentials: true });
    
  • 更高效的方式是全局配置HTTP拦截器,给所有API请求自动加上这个选项,避免重复设置:
    @Injectable()
    export class CredentialsInterceptor implements HttpInterceptor {
      intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
        const authReq = req.clone({ withCredentials: true });
        return next.handle(authReq);
      }
    }
    
    然后在模块的providers里注册这个拦截器

5. 排查浏览器Cookie设置

浏览器的Cookie限制也可能导致会话提前失效:

  • 打开浏览器开发者工具(F12)→Application→Cookies,找到站点下的ASP.NET_SessionId Cookie,检查它的过期时间是否为「会话」(关闭浏览器才失效)或者与设置的15分钟超时匹配
  • 确认浏览器没有禁用站点的Cookie,或者设置了Cookie的过期时间过短

6. 检查中间设备的超时设置

如果你的部署环境有防火墙、反向代理或负载均衡,这些设备的连接超时设置可能比15分钟短:

  • 联系运维团队,确认这些设备的TCP连接超时或HTTP会话超时设置,确保大于等于15分钟,避免中间设备主动断开连接导致会话回收

按照这个顺序排查,基本能定位到问题所在。

内容的提问来源于stack exchange,提问作者supremo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:31:44