ReactJS:net::ERR_HTTP2_PROTOCOL_ERROR 200 与 HTTPS 中的 .NetCore
Posted
技术标签:
【中文标题】ReactJS:net::ERR_HTTP2_PROTOCOL_ERROR 200 与 HTTPS 中的 .NetCore【英文标题】:ReactJS: net::ERR_HTTP2_PROTOCOL_ERROR 200 with .NetCore in HTTPS 【发布时间】:2021-08-17 04:44:45 【问题描述】:我使用ReactJS开发我的应用,之前还可以,突然出现这个错误:
GET https://localhost:44368/static/js/0.chunk.js net::ERR_HTTP2_PROTOCOL_ERROR 200
我不知道这里发生了什么,以前很好。我该如何解决这个问题?
【问题讨论】:
我遇到了这个问题,但我没有做任何更改,也没有再遇到这个问题。也许最近的 Windows 更新或 VS 更新有所帮助? 【参考方案1】:我正在使用 Visual Studio 2019 并遇到了同样的问题。这就是我为解决它所做的:
从项目的 Dependencies/Packages 中删除了“Microsoft.AspNetCore.SpaServices.Extentions”Nuget 包,然后安装了最新版本(已安装 5.0.6)
清理并重建了解决方案,它又开始工作了。
让我知道它是否适合你!
【讨论】:
您先生,救了我的命。我必须将 .net 版本升级到 5.0,然后将 spa 服务扩展升级到 5.0.6。现在可以使用了。 很好,我很高兴它成功了。我还必须升级到 .Net Core 5。我真的很想知道为什么一开始就将默认项目框架设置为较旧的 .Net Core 版本。 我只是想知道您是如何调试此类问题的。你怎么知道这个包引起了问题 我希望我能在一个多月前解决这个问题时记住您问题的完整答案。我记得 Visual Studio 终端中的一些消息提示我 Nuget 包中可能存在问题。不过我花了一整天的时间才找到它!【参考方案2】:没有足够的代表发表评论,但想写一个说明,说与 JTM 有完全相同的经历,并认为 Win10 更新似乎是可能的嫌疑人。昨晚运行良好且没有任何更改的 .Net Core 项目在更新后停止运行。
【讨论】:
我也遇到过这种情况。昨晚一切正常,但今天完全不行。如果我发布应用程序并在 IIS 上部署它可以工作,但它不会在 Visual Studio 的调试中工作。我已经失去了一整天的开发时间来试图解决这个问题,但仍然没有运气! 另外,我使用的是 .NET 5.0。 我现在已经设法让它运行,方法是转到服务器项目属性页面 > 调试,然后取消选中“启用 SSL”。我会尝试在 VS/Windows 更新后重新打开它,看看是否解决了根本问题。 实际上我会说最好的解决方案是卸载 KB5003637 和 KB5003254,因为一旦我这样做了,我就可以像以前一样继续工作。这些补丁中似乎存在一些破坏 IIS express ssl 功能的错误。 卸载 KB5003637 为我解决了这个问题。我们正在使用 .NET Core 3.1 w/ SPA 扩展,用于 hmr 等。【参考方案3】:此解决方案不适用于 dotnet 核心。我已尝试将 SpaServices.Extensions 更新到最新版本 3.1.16。
临时解决方案是在 Web 服务器设置下禁用 SSL。
【讨论】:
我尝试将“Microsoft.AspNetCore.SpaServices”和“Microsoft.AspNetCore.SpaServices.Extensions”等一些依赖项更新到 3.1.16,但没有帮助。【参考方案4】:感谢@Alan Barber 的回答。我一直在寻找解决方案,但没有将 .NET Core 版本 (3.1) 升级到 5。
卸载窗口更新补丁(KB5003637)后我的项目恢复正常。
【讨论】:
【参考方案5】:我能够通过卸载最近的 Windows 补丁 KB5003637 来解决这个问题。 https://www.windowslatest.com/2021/06/11/windows-10-kb5003637-update-could-break-your-taskbar
【讨论】:
【参考方案6】:删除以下更新
Microsoft Windows 安全更新 (KB5003637)
删除后,它会要求您重新启动计算机。然后它将安装一个较旧的安全更新:可能是KB5003173
,这不会导致任何问题。
【讨论】:
【参考方案7】:这发生在我更新 Windows 之后,并且由于公司政策的原因,无法回滚。我在这个开发者社区链接https://developercommunity.visualstudio.com/t/Failed-to-load-resource:-net::ERR_HTTP2_/1446262(特别是 Kevin Pilch 的那个)中找到了一个解决方案。
我添加了注册表项(其中 2 个用于关闭 HTTP2)并且它起作用了。 如果注册表编辑不起作用,另一种选择是安装 Fiddler 并使其保持运行。 Fiddler 将强制使用 HTTP/1.1 而不是 HTTP/2
他帖子中的相关部分
启动 Windows 注册表编辑器。
-
导航到注册表项 2.HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters。
向此添加 2 个新的 REG_DWORD 值,EnableHttp2Tls 和 EnableHttp2Cleartext
注册表项。
将这两个值都设置为 0。
重启服务器。
【讨论】:
以上是关于ReactJS:net::ERR_HTTP2_PROTOCOL_ERROR 200 与 HTTPS 中的 .NetCore的主要内容,如果未能解决你的问题,请参考以下文章
页面未完全加载文件并显示 net::ERR_HTTP2_PROTOCOL_ERROR
Chrome net::ERR_HTTP2_PROTOCOL_ERROR 200 重新连接后
Python Quart/Hypercorn 流式响应导致 net::ERR_HTTP2_PROTOCOL_ERROR 200