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

AT&T移动网络用户认证时IIS 10连接异常问题排查

问题:ASP.NET WebForms站点迁移至IIS 10后AT&T移动网络登录后页面挂起

我们正将ASP.NET WebForms站点从运行IIS 8.5的Server 2012 R2 Azure VM迁移至运行IIS 10的Server 2022 Datacenter Azure Edition VM。测试新平台时发现,AT&T移动网络用户提交登录凭证完成认证并跳转至受保护内容区域后,站点出现挂起:有时页面部分加载或连接重置超时,有时完全无法加载;但认证前用户可正常访问非受保护HTTPS页面。

该站点在其他网络下运行正常,使用VPN通过同一AT&T移动连接访问也无问题。若页面挂起后保持浏览器开启并启用VPN,无需重新认证即可正常加载内容。原IIS 8.5服务器上使用AT&T移动网络无此问题。

补充信息

  • 采用Forms Authentication,目标框架为4.7.2
  • 已确认用户在服务器端完成认证,通过SSL下发Auth Cookie,客户端响应头中存在该Cookie,AppAuth Cookie大小为3.5kb
  • 页面挂起后,用户需删除站点Cookie才能重新访问非受保护页面
  • IIS日志显示登录请求的Post及302重定向记录
  • Wireshark显示客户端TLS1.2握手成功,有时在若干数据包后出现RST, ACK
  • HttpErr日志有时提示Timer_EntityBody
  • 多台设备及AT&T移动连接(浏览器、手机热点连电脑)均存在此问题
  • Azure NSG未配置额外拒绝规则

已执行的排查操作

  • 在IIS绑定中禁用TCP上的TLS 1.3
  • 在IIS绑定中禁用HTTP/2
  • 修改设置后重启IIS
  • 为Azure VM重新分配公网IP和NSG
  • 设置Timer_MinBytesPerSecond = 0

分析与解决方案建议

1. Cookie相关的IIS版本默认行为差异

IIS 10(Server 2022)默认对Cookie的SameSite属性有更严格的自动处理逻辑,而IIS 8.5无此默认行为。AT&T移动网络的中间代理可能对未明确设置SameSite属性或设置为SameSite=None的Cookie存在拦截或解析问题。另外,3.5kb的Auth Cookie接近部分移动代理的单Cookie大小阈值,IIS 10的Cookie传输或压缩方式与8.5不同,可能触发代理的异常处理:

  • 在web.config中明确配置SameSite属性,例如:
    <system.web>
      <authentication mode="Forms">
        <forms cookieSameSite="None" requireSSL="true" ... />
      </authentication>
    </system.web>
    
  • 尝试拆分大Cookie,或启用ASP.NET的Cookie压缩功能,减少传输体积。

2. TCP栈与网络特性兼容性问题

Server 2022默认启用了TCP Fast Open等新TCP栈特性,这些特性在AT&T移动网络的复杂NAT环境下可能存在兼容性问题:

  • 执行命令禁用TCP Fast Open:
    netsh int tcp set global fastopen=disabled
    
    重启服务器后测试效果。
  • 检查IIS站点的requestFiltering配置,确认maxAllowedContentLength、maxQueryString等参数未限制携带大Cookie的请求,可临时禁用请求过滤进行测试。

3. TLS会话复用配置冲突

Wireshark中的RST, ACK包可能源于IIS 10默认启用的TLS会话票证(Session Tickets)与AT&T代理不兼容,而IIS 8.5默认未启用该特性:

  • 在注册表中禁用TLS会话票证:
    1. 定位到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters
    2. 添加DWORD类型值EnableSslSessionTicket,设置为0
    3. 重启HTTP服务与IIS后测试。

4. Timer_EntityBody超时的深层配置调整

虽然已设置Timer_MinBytesPerSecond=0,但IIS 10的HeaderWaitTimeout、ConnectionTimeout默认值与IIS 8.5存在差异,AT&T代理的延迟可能触发超时:

  • 调整HeaderWaitTimeout为更长时间:
    appcmd set config /section:system.webServer/serverRuntime /headerWaitTimeout:00:05:00
    
  • 检查IIS站点高级设置中的“连接超时”值,尝试调大至300秒测试。

5. Azure加速网络兼容性测试

Server 2022 Azure Edition默认启用Azure Accelerated Networking,该特性可能在部分移动网络环境下存在兼容性问题:

  • 在Azure门户中进入VM的网络接口设置,禁用“加速网络”,重启VM后测试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 08:45:49