只是想知道我的浏览器每次点击浏览器链接刷新时都会询问我是否要停止调试,这很烦人,因为这会减慢开发时间。
有没有其他人遇到过这个?
干杯
更新的答案,现在找到了根本原因
经过两年的断断续续地看到这个错误之后,我终于明白了是什么原因造成的。非常感谢 Damian Edwards 在社区站立会议中提到这一点!
作为开发人员,我们经常在 Visual Studio 中以调试模式而不是发布模式进行所有开发。我们用 F5 运行我们的项目是很常见的。在这种情况下,VS 在启用调试器的情况下运行项目,这并不奇怪。
事实证明,“你想停止调试吗?当你尝试通过浏览器链接刷新时出现的错误对话框是“嘿,你做了一些看起来可能需要重新编译剃刀视图才能刷新页面的更改,并且为了做到这一点,Visual Studio 需要停止调试器会话,可以吗?”
和修复?这会让你大吃一惊。如果您想在进行 html/css 更改时使用浏览器链接快速刷新页面并且再也不会看到此消息,请执行以下操作:使用 CTL+F5 而不是 F5 运行项目。这将在不启动调试器的情况下运行项目,如果您打算使用 browerlink 在视图上执行一堆 html css 工作,您可能无论如何都不会使用调试器。:-) 就是这样,没有更多的错误信息。巴姆。别客气。(我花了两年时间才弄明白。手靠在额头上,眼睛在转动)
我在下面留下了我原来的答案,因为它在某些情况下似乎确实有帮助,而且它已经收到了一些赞成票,但事后看来,我认为这更像是一个巧合的观察,而不是根本原因。
原来
我已经为这个问题苦苦挣扎了将近一年。我可能刚刚发现了原因。我同时运行了两个 Visual Studio 副本,每个副本都有不同的 Web 项目。然后,当我尝试获取 browserlink 以在 Visual Studio 的一份副本中刷新浏览器时,它会询问“你想停止调试吗”。
然后我退出了 Visual Studio 的第二个副本,并在 Visual Studio 的第一个副本中重新运行了 Web 项目,当我尝试让 browserlink 刷新浏览器时,它运行良好,没有提示。是的。比“你想停止调试吗”更好的错误消息可能是“看起来你在不同的 Visual Studio 副本中同时运行两个 Web 项目。Browserlink 不支持这一点,请关闭其中一个。”
您可能想查看这篇文章:https ://stackoverflow.com/a/21706524/4079626 。如果您使用的是旧版本的 IE(如 IE9),那么长轮询可能是问题所在。
简短的回答
浏览器链接将仅在 Windows 8 或 Windows Server 2012 上使用 WebSockets
更长的答案
如果您在 Windows 7、Windows Vista 或 Windows Server 2008 上使用 Visual Studio,下面将解释该问题:
IIS (Express) 依赖于 .NET 框架实现
System.Net.WebSockets
来处理 WebSocket 连接;正如您在 MSDN 的链接中所读到的那样,当您在 Windows 7 上安装 .NET 4.5 时,您根本无法获得必要类的实际实现。因此,在这种情况下,服务器无法同意客户端从标准 HTTP 更改为 WebSocket 协议的请求,这会迫使 SignalR 客户端使用一种后备选项(在您的情况下:长轮询)。