我正在主持一个服务于全球地区的网站,最近出现了一个奇怪的问题。
已经检查了互联网上的其他职位,包括一个在stackoverflow与大量的讨论:Chrome net::ERR_HTTP2_PROTOCOL_ERROR 200 after a reconnect,但没有一个答案有帮助。
网站是建立在ASP.NET的webform的传统“网站”(不是网络应用程序)。有一个重要的功能,执行几个过程,一旦用户点击网站上的按钮。让我们假设有100行代码在该功能,我已经添加了一些标志,以记录哪些步骤已经击中和处理。
诡异的情况是:
1.只有中国用户面临这个问题。(网站不在中国托管)
1.一些用户正在使用firefox,它在下面返回,在英语中它是“安全连接失败”,但检查了几个帖子,包括firefox文档,屏幕上应该有错误代码,如ssl_error_no_cypher_overlap,但没有。Firefox error
1.一些用户正在使用其他基于Chrome的浏览器,它返回:Chrome error
另外,我检查了这些用户反馈中的进程日志,其中大多数没有完成所有代码,换句话说,如果有100行代码,其中一些只是停在第50行。
网站启用了TLS 1.2,当我通过Chrome网络选项卡检查时,也应用了http 2协议(h2)。
我想知道是否有可能,如果客户端浏览器在某些原因关闭连接,它将结束与我看到的结果(停止在整个代码流的中间),从我的意见,如果一个请求被张贴到服务器,那么无论客户端做什么,该过程应该完成整个流程。
任何想法或想法将不胜感激!
2条答案
按热度按时间deikduxw1#
我只是在处理这种情况。
从我在HTTP2_PROTOCOL_ERROR上读到的各种帖子来看,我 * 认为 * 发生的事情是响应开始了,但是代码问题阻止了服务器完成响应。不完整的响应在Chrome中给出了协议错误,并且,因为它是通过TLS的,Firefox将其视为安全错误。(我想分享链接,但是我已经关闭了所有这些窗口-对不起。)
不知何故,我的代码阻止了服务器在不引起异常的情况下完成响应。
我能够通过注解掉页面上每个代码隐藏过程的主体,然后一次一个地将它们恢复回来,来跟踪违规代码。
祝你好运!
xqk2d5yq2#
我不能给予您一个具体的例子,但在我的例子中,应用程序端没有问题。
您最近是否向内部基础架构工程师添加了设置?
例如,您是否添加了
WAF
设置?您可能需要检查。仅供参考