【问题标题】:Stackoverflow exception in VS 2015 but not in VS2010 how?VS 2015 中的 Stackoverflow 异常,但在 VS2010 中却没有?
【发布时间】:2016-08-03 11:53:10
【问题描述】:

几年前有一个用 VS2010 编写的 webservice 项目,问题是所有代码完全相同(相同的 PC,用相同的代码测试 vs2010 和 2015)但在 vs2015 中它在调试模式下出错。选项>“项目和解决方案”设置都是一样的。我接受了这个错误和它的定义;

System.Runtime.Serialization.dll 中出现“System.StackOverflowException”类型的未处理异常

System.StackOverflowException 未处理 消息:mscorlib.dll 中发生了“System.StackOverflowException”类型的未处理异常

任何人都知道它,我很高兴关注。我无法共享代码,因为它有将近 30.000 行。

【问题讨论】:

  • 我们怎么可能在没有看到被抛出的代码的情况下弄清楚发生了什么?特别是发生异常的那一行?您是否尝试过调试它以观察导致异常的行为?
  • 我尝试多次评论或删除 30.000 行的不同部分,但每次都会弹出相同的错误。当我启动 Debug 时,不对函数做任何事情,它给出了错误
  • 所以设置它在异常上中断,然后看调用堆栈...
  • btw stackoverflow 异常不指向一条线。它指向 dll 文件
  • 当您在 Visual Studio 中遇到异常时,您可以通过转到“调试 > 异常”并检查“公共语言运行时异常”旁边的“抛出”来将其设置为中断异常。它将在 SO 异常发生的那一行中断,然后只需查看调用堆栈即可查看一遍又一遍地调用了哪些方法。

标签: c# web-services visual-studio-2010 visual-studio-2015 stack-overflow


【解决方案1】:

已解决

将此添加到 web.config 中的 appSettings:

<add key="vs:EnableBrowserLink" value="false" />

在 VS 2013 之后,默认情况下 VS 会自动启用浏览器链接。 StackOverflowException 发生,但不包括发生的任何细节。您可以查看此链接以获取有关 VS 2013 中浏览器链接功能的更多信息:https://blogs.msdn.microsoft.com/webdev/2013/06/28/browser-link-feature-in-visual-studio-preview-2013/

【讨论】:

  • 像魅力一样工作 :) 我想将此功能设置为 false 的唯一挫折是无法在 Visual Studio 中调试客户端脚本?
【解决方案2】:

你遇到了这个错误,你要做什么......

您的项目停止并且无法运行,但这通常与您的代码无关。

当然,这取决于您的编码方式,但如果您没有编写任何无限循环,则完全没问题。

这是关于 Visual Studio 2013 的,它尝试将长序列化数据发送到浏览器,因为“启用浏览器链接”选项。

您可以通过两种方式解决此问题..

在 web.config 的 appSettings 中添加它

<add key="vs:EnableBrowserLink" value="false" />

或者

您可以在工具菜单中禁用以下选项

【讨论】:

    猜你喜欢
    • 2017-06-16
    • 2019-06-09
    • 1970-01-01
    • 2013-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-15
    相关资源
    最近更新 更多