在一个混合的asp.net网页应用程序中,使用框架4.5.1和LINQ to SQL(而不是Entity Framework),我遇到了异常。每次调用DataContext.SubmitChanges()都会导致错误,无论修改哪个具体实体都会出现这个错误。这个错误立即抛出(与大多数StackOverflow异常不同,通常需要几秒钟来发生,因为错误代码溢出了堆栈)。asp.net网页应用程序在本地主机上运行,在使用Visual Studio 2013时使用IIS express。数据库是SQL Server 2005。我的问题是,在这种环境下如何调试StackOverflow异常?现在以上错误消息是我得到的全部内容。事件查看器注意到浏览器崩溃了(它在IE 11和Chrome中都发生),但没有关于LINQ to SQL异常的任何信息。SQL Server进程监视器没有注册任何数据库调用。我已经连接了一个日志到我的DataContext,但它没有记录任何东西。
在任何数据库调用发生之前,也在任何日志记录之前,栈溢出似乎发生在System.Data.dll
内部。
几个小时前突然开始出现这种情况,可能是Windows更新后机器重新启动造成的巧合。
还有一些非常奇怪的事情:我们店里有四名开发人员,都使用Visual Studio 2013。其中两个人突然遇到了这个问题,而另外两个人从来没有遇到过。我们都运行相同的代码并访问同一个数据库。那两个遇到问题的人已经重新启动了机器,其中一个机器上的问题消失了,但我的机器上仍然存在。
除了重新启动,我还从机器上删除了该项目,并从源控制中获取了与我的三个同事完全相同的代码,删除了我的机器上的所有临时Internet文件,并删除了我的登录的所有AppData\Local\temp文件。
有没有办法调试这个问题?
当异常发生时,调用堆栈的剪辑(对VisitExpression等的调用重复多次,直到结束)。