Firefox113.x升级后ASP.NET MVC应用空白及mozRTCSessionDescription报错求助
解决方案
问题根源
Firefox 113及以上版本彻底移除了WebRTC API的moz前缀(比如mozRTCSessionDescription),统一使用标准的W3C API名称(RTCSessionDescription)。你的应用依赖的旧版SignalR或自定义代码仍在调用这些已被移除的带前缀API,导致脚本报错中断,最终出现空白页面。
修复步骤
1. 升级SignalR版本
检查当前使用的Microsoft.AspNet.SignalR版本,旧版本未适配Firefox 113的API变更。升级到兼容.NET Framework 4.6.2的最新稳定版(如2.4.3版本,该版本支持.NET Framework 4.5及以上),新版本已处理浏览器API的兼容性问题。
2. 添加Polyfill兼容(临时方案)
如果暂时无法升级SignalR,可在页面加载SignalR脚本之前插入以下代码,手动映射标准API到旧前缀:
// 兼容Firefox 113+移除moz前缀的WebRTC API if (typeof mozRTCSessionDescription === 'undefined' && typeof RTCSessionDescription !== 'undefined') { window.mozRTCSessionDescription = RTCSessionDescription; } if (typeof mozRTCPeerConnection === 'undefined' && typeof RTCPeerConnection !== 'undefined') { window.mozRTCPeerConnection = RTCPeerConnection; }
这段代码会在Firefox 113+环境中,将标准API挂载到旧的moz前缀命名空间下,确保SignalR能找到所需对象。
3. 检查自定义前端代码
排查Knockout.js相关代码或其他自定义脚本,确认是否有直接引用mozRTCSessionDescription的地方。如果有,替换为标准的RTCSessionDescription,并添加兼容性判断:
// 兼容多浏览器的WebRTC对象获取 const RTCSessionDescription = window.RTCSessionDescription || window.mozRTCSessionDescription || window.webkitRTCSessionDescription;
内容的提问来源于stack exchange,提问作者IntelligentCancer
相关产品推荐
相关产品推荐

