我有一个奇怪的错误。我正在调试一个asp.net网站,突然停止了。 Visual Studio保持调试模式,我的Web应用程序保持正常运行。我发现了this帖子,但我不认为后台线程会导致问题。有一个尝试捕获代码通常停止调试,但捕获不会被触发...每次我尝试它,它停在代码中的不同位置。
答案 0 :(得分:7)
您是否已将调试器设置为中断所有异常,而不仅仅是未处理的异常?
调试 - >例外 - >检查“Thrown”框以查找所有内容(或至少只是公共语言运行时例外)。如果在调试期间抛出异常,在任何线程上,这都应该导致调试器突出显示并打破“thrower”。
要尝试的另一件事是重置所有IDE设置。在设置损坏并且IDE停止合理行为之前,我有各种奇怪的行为:工具 - >导入和导出设置 - >重置所有设置。
除了Daniel Dyson的回答 - 如果你按照他的建议“暂停”(一旦调试“停止”),打开“Threads”调试窗口。是否有任何线程显示在“位置列”中有条目。如果是这样,这可能是您的代码执行。依次点击每个。你能解释每个线程正在做什么,或者这是否说明了这种奇怪的行为?
答案 1 :(得分:4)
您是否尝试过点击暂停||按钮?这将暂停调试器在任何位置执行,所以如果你在try catch块之外的无限循环中,你将能够找到它。
答案 2 :(得分:1)
在Global.asax中的Application_Error事件中添加断点。
答案 3 :(得分:1)
检查ide中的模式,将其设置为Debug to to Release。
因为如果将应用程序设置为“发布”模式,则无法对其进行调试。
检查详情:http://msdn.microsoft.com/en-us/library/e8z01xdh(VS.80).aspx
答案 4 :(得分:1)
确保IIS配置中的“Ping Enabled”设置设置为“False”。
在IIS7中,右键单击AppPool,选择“高级设置”,向下导航到Ping Enabled设置并将其更改为false。
如果您使用的是IIS6,则设置略有不同。如果我没记错的话,我相信它被称为“Ping Interval”,它被设置为几秒钟。
答案 5 :(得分:0)