为什么我在 运行 我的 ASP.NET 站点时在 IE 中得到异常而不是 Chrome?

Why do I get an exception in IE but not Chrome when running my ASP.NET site?

我终于能够在我的 regular/preferred 浏览器 - Chrome 中访问 运行 的遗留站点。我试图了解如何逐步执行 F12 工具中的 javascript 代码。当我看不到如何访问脚本代码时,我做了一些研究,发现 javascript 调试 ASP.NET 项目只能(据说?)只能在 IE 中完成。

所以在项目中,我把使用的浏览器从Chrome换成了IE。现在,当我尝试从 VS IDE 打开网站时,它因异常而中断:

为什么 Chrome 会愉快地忽略它,或者为什么 IE 不高兴地把它当回事?

在 Chrome 中,我看到各种 ScriptResource 文件:

...但是除了网站的自定义 javascript - Microsoft 和 Telerik 代码,这些似乎都是一切。

此 ASP.NET 站点以 .NET 3.5 为目标;浏览器 11; Visual Studio 2013.

您正在请求 Cookies 集合中的项目。很可能这个cookie存在Chrome,这里不给异常。可能这个 cookie 不存在于 Internet Explorer 中,在那里你会得到异常。

在进一步处理之前始终检查结果 if Request.Cookies[...] 是否为空。

检查您初始化 Request.Cookies(PortalHelper.BUTTON_MEMBER) 的位置,以验证您实际上是在 运行ning 那个代码,然后才期望该值在那里.在该代码行和错误代码行设置断点,然后通过 IE 通过 IDE 运行 查看哪个代码首先获得 运行。

从 IDE 开始,您可能会跳过一部分代码,这些代码通过 Chrome 您不是,或者您之前已经通过其他工作流程初始化过。

不确定您是否要求修复您的实际代码问题?或者只是询问 chrome 和 IE 之间的行为差​​异?

如果是后者,那只是VS正在启动一个IE js调试会话,并因错误而中断(你看到VS正在调试JS)。当浏览器开发工具还很新(特别是对于 IE)时,这是一个有用的特性,现在已经不是那么多了。当你 运行 和 chrome 时,没有这样的 VS 浏览器调试会话,因此 运行 通过。

如果您只是打开一个新的浏览器并点击 URL 到您的 运行ning 服务器(它不会有 VS 进程),IE 也会给出一个静默的 运行钩)。