【发布时间】:2010-09-29 00:18:09
【问题描述】:
我有一个大型 Compact Frameworks V2.0 应用程序,在大多数情况下运行良好。在某些设备上大约每天一次,用户会收到一个本机错误 0xC0000005,该错误未被标准托管的 Try/Catch 块捕获。
我的应用程序以固定的时间间隔通过 ASMX 调用与服务器同步。该问题似乎发生在同步期间。除了同步时发生的 ASMX 调用外,还有相当多的业务逻辑,但其中 98% 是托管代码。我已经查看了我所有的 P/Invokes 和应用程序原生 C++ 库,此时我大约 95% 确定这不是问题所在。
由于这种情况只发生在某些设备上并且很少发生(每天少于一次),因此很难隔离。我已经分析了我的代码,它看起来好像发生在应用程序中的随机位置,所以我怀疑某些东西正在破坏内存。
任何关于如何进一步解决此问题的想法将不胜感激。
【问题讨论】:
-
你能说服崩溃发生在设备模拟器中吗?通过模拟器进行本机调试可能会让您有所收获;除此之外,您所能使用的只是拔掉应用程序的大部分内容并查看它是否停止死亡。换句话说,一点也不好玩。
-
Tnx...不是真的...我无法“说服”它以任何方式崩溃...我认为它可能与即将到来有关即使在设置电源要求后也退出睡眠模式。设备充电时我从未见过问题。
-
是的,睡眠/唤醒是完全不同的事情。我已经修改了我的答案以包括这一点。
标签: windows-mobile compact-framework access-violation