如何调试不会抛出任何错误的程序

时间:2011-03-30 22:35:59

标签: visual-studio-2010 debugging asp.net-mvc-3

我无法在我的应用程序中找到错误。

问题是随机的,不会抛出任何错误。该网站只是不断加载和加载,最终会超时。

是VS 2010 Pro中使用MVC 3的Web应用程序。

前段时间,我看到一位朋友在网址上写了一些内容,并获得了该程序的所有内容...... 可悲的是,我不记得命令是什么。

任何人都知道它是什么命令?

有关用于调试的内容的任何建议吗?

谢谢!

埃德加。

UPDATE!

我终于找到了命令......是trace.axd

但它的行为方式相同......有时加载没有问题并向我显示所有跟踪信息......有时......它会继续加载和加载......

也许是与IIS相关的东西?

4 个答案:

答案 0 :(得分:1)

打开每个抛出异常的中断,在调试模式下运行应用程序并等待。如果执行时间过长,请暂停应用程序并检查您的位置或等待某处处理的异常。

答案 1 :(得分:1)

你的朋友可能已经在他的应用程序中内置了以下内容,以动态设置跟踪。

Trace.IsEnabled = Request.QueryString["trace"] != null ? true : false;

仅在页面完全加载时才提供信息。如果你使用VS调试器来逐步执行代码,那可能是最好的。

如果所有循环看起来都正常,请调查可能导致循环引用或死锁的代码。有时候很难发现这些,寻找需要调用类结果的函数或构造函数。所以代码需要函数的结果,而函数又需要第一个结果。

答案 2 :(得分:0)

嗯,这听起来好像你在某处有一个无限循环。

查看访问导致问题的网址时运行的代码。看看那里是否有任何循环(for / while)。如果是,请查看为什么他们永远不会退出。您可以通过在循环中放置断点并检查其在迭代中的行为来实现此目的。

答案 3 :(得分:0)

在MVC中,您看不到的错误大部分时间(特别是在Razor和Ajax工作中)查看编译错误。有时,视图上的语法错误不会显示该视图,也不会停止工作。

试试:

查看断点。 如果程序在那里停止,则意味着该视图正在运行。另外,此视图中存在语法错误。

与Visual Studio相比,查看某些错误信息的另一种方法是使用浏览器工具。 我使用谷歌浏览器。只需在其中打开开发人员工具。开放网络。并做你的要求。它将列出请求和响应。单击响应并查看信息。风格(它写成Verdana等)后阅读异常细节。有时会有更多信息:)

我从一开始就在Razor中使用MVC 3。所以这是asp.net mvc中的一个小错误。