Chrome挂起“发送请求”似乎与套接字相关

时间:2013-04-05 16:43:20

标签: sockets google-chrome

当我为我正在处理的相当大的应用程序加载url时,我会说每3-4次重新加载应用程序挂起并停止加载。 Chrome会在左下角报告“发送请求”。我似乎无法识别它停止的任何文件,而是找到了这个帖子:

https://code.google.com/p/chromium/issues/detail?id=55046

表示它可能是套接字问题。从这个页面刷新套接字(chrome:// net-internals / #sockets)会立即释放页面,一切都会正常加载。这是来自chrome内部页面的图像

chrome internals socket page

我意识到这可能确实是一个chrome bug,但与此同时,我需要一个解决方法,因为用户在chrome中遇到了这个bug,并且无法加载应用程序。 想法?

2 个答案:

答案 0 :(得分:4)

我知道2个解决方法,但没有一个是非常方便的:

  1. 禁用SPDY:"...\chrome.exe" --use-spdy=off(遗憾的是无法通过标记完成)
  2. 禁用同步(“设置 - 断开您的Google帐户”)
  3. 另一个选择是减少应用程序内的连接数(为1个域提供所有静态内容+ 1个所有客户端 - 服务器通信的websocket连接),并尽可能删除小部件(twitter,disqus等保持持久连接) ,这可能会或可能不会帮助考虑在所有Chrome标签之间共享套接字池:(

    就个人而言,自Chrome 21以来,这个错误发生在随机网站上,并且在某种程度上可以通过重置游戏池的崩溃来解决:)

答案 1 :(得分:1)

在您关于图像重定向的建议以及使用 Fiddler2 之后,我看到我在图像中也有很多重定向。 就我而言,我在 ASP.NET MVC 中有一个重写规则,它会降低我们的URL。对于我们的项目文件夹也是如此,在这种情况下,包含图像的文件夹,例如URL/Images/OurLogo.png成为url/images/ourlogo.png

更改我们的重写规则以在条件标记中包含以下行,解决了问题:

<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />

完整重写规则供参考:

<rule name="Convert to lower case" stopProcessing="true">
  <match url=".*[A-Z].*" ignoreCase="false" />
  <conditions>
    <add input="{REQUEST_METHOD}" matchType="Pattern" pattern="GET" ignoreCase="false" />
    <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
  </conditions>
  <action type="Redirect" url="{ToLower:{R:0}}" redirectType="Permanent" />
</rule>