Blazor Server站点IIS本地刷新缓慢:WebSocket协议切换101响应问题
问题描述
开发Blazor Server站点时,本地IIS测试环境下页面加载、运行速度正常,但页面刷新时速度极慢;使用Visual Studio内置服务器运行则无此问题。经排查,问题与SignalR的refreshGrHub直接相关:移除该Hub后,页面刷新速度恢复正常。
IIS日志显示,保留refreshGrHub时会返回101协议切换响应(切换至WebSocket):
2024-08-13 13:27:30 ::1 GET /refreshGrHub id=CfYEGcWIaUhzrewhY1kBlQ 8080 - ::1 Microsoft+SignalR/8.0+(8.0.7+2f1db20456007c9515068a35a65afdf99af70bc6;+Windows+NT;+.NET;+.NET+8.0.7) - 101 0 64 7
移除Hub后无此101响应。使用Windows 11系统,需明确WebSocket协议切换缓慢的原因及解决办法。
原因分析
- IIS WebSocket模块未正确启用/兼容:Windows 11上的IIS默认可能未开启WebSocket模块,或模块版本与.NET 8 SignalR不匹配,导致协议握手过程出现延迟。
- Hub初始化逻辑阻塞:
refreshGrHub的构造函数或OnConnectedAsync方法中存在同步阻塞操作(如同步数据库查询、本地文件IO),页面刷新时重建SignalR连接会触发这些阻塞逻辑,拖慢整个刷新流程。 - IIS配置冲突:站点绑定的端口、主机头设置,或存在的URL重写规则,可能干扰SignalR的WebSocket路由解析,导致协议切换耗时增加。
- 安全软件拦截:Windows Defender或第三方杀毒软件可能对WebSocket握手请求进行额外扫描,造成延迟。
解决办法
启用并验证IIS WebSocket模块
- 打开「控制面板」→「程序和功能」→「启用或关闭Windows功能」。
- 展开「Internet Information Services」→「万维网服务」→「应用程序开发功能」,勾选WebSocket协议,确定后重启IIS。
- 打开IIS管理器,选中目标站点→「模块」,确认
WebSocketModule已存在。
优化Hub初始化逻辑
- 检查
refreshGrHub的构造函数和OnConnectedAsync方法,将所有同步阻塞操作替换为异步版本(比如用await _dbContext.Set<T>().ToListAsync()替代同步查询)。 - 避免在连接建立时执行重型操作,可将非必要初始化逻辑延迟到首次消息发送时处理。
- 检查
调整IIS与SignalR配置
- 在站点的
web.config中添加WebSocket相关配置,明确传输优先级:<configuration> <system.webServer> <webSocket enabled="true" /> </system.webServer> <appSettings> <add key="SignalR:WebSocketEnabled" value="true" /> <add key="SignalR:TransportPriority" value="WebSocket, ServerSentEvents, LongPolling" /> </appSettings> </configuration> - 确保站点应用程序池为集成模式,.NET CLR版本匹配.NET 8(选择「无托管代码」或对应.NET 8版本)。
- 在站点的
排除安全软件干扰
- 临时关闭Windows Defender实时保护,测试刷新速度是否恢复;若恢复,将站点目录和IIS进程(
w3wp.exe)添加到Defender排除列表。 - 检查第三方杀毒软件的网络监控规则,排除站点使用的端口(如测试用的8080)。
- 临时关闭Windows Defender实时保护,测试刷新速度是否恢复;若恢复,将站点目录和IIS进程(
排查SignalR连接日志
在项目Program.cs中启用SignalR详细日志,定位协议切换阶段的具体耗时点:builder.Logging.AddFilter("Microsoft.AspNetCore.SignalR", LogLevel.Debug); builder.Logging.AddFilter("Microsoft.AspNetCore.Http.Connections", LogLevel.Debug);运行站点后查看日志,确认延迟发生的具体环节。
内容的提问来源于stack exchange,提问作者vagelis
相关产品推荐
相关产品推荐

