我有一个.net winforms应用程序,它分发给多台计算机并使用本地sqlite数据库。
当我启动它时,这个应用程序似乎运行良好,它与sqlite数据库进行良好的通信。
不幸的是,经过一段时间后,应用程序崩溃了,并且在事件日志中只说了以下内容:
系统
提供商
[名称]应用程序错误
EventID 1000
[Qualifiers] 0
等级2
任务100
关键字0x80000000000000
TimeCreated
[SystemTime] 2015-09-12T05:04:50.000000000Z
EventRecordID 11046
频道申请
计算机COMPUTERNAME
安全性
APP.EXE 1.4.0.0 55f3427b SQLite.Interop.dll 1.0.89.0 526c2665 C00000FD 0003ad7c E3C 01d0ecda7737ba11 C:\ Program Files(x86)\ APPFOLDER \ APP.exe C:\ Program Files(x86)\ APPFOLDER \ x86 \ SQLite.Interop.dll cb1e1c14-590b-11e5-80ce-00155d8378f5
我现在添加了一些异常报告,希望能获得更多信息。但我不确定这还不够......
另外,我不确定我能做些什么才能触发问题...
这可能没有关系,但其他人甚至得到了另一个例外的截图:
CLR20r3在System.Data.SQLite中 =>我查了一下,发现了一篇SO帖子: Program Stopped working, Problem Event Name: CLR20r3
所以我修改了app.config以添加:
<startup useLegacyV2RuntimeActivationPolicy="true" >
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
不确定这是否有帮助,因为我无法重现此问题。
只是想添加此信息以防有人认为这是相关的......
之前有没有人见过这样的事情,什么是最好的行动方案?
PS。该应用程序通过telerik数据访问每隔几分钟与sqlite对话(又名telerik openaccess)=&gt;它只是一个像EF这样的ORM。
答案 0 :(得分:0)
您是否可以附加Windbg或Remote debug with Visual Studio等调试程序?这样,您可以获得有关抛出异常(如果有)的更多信息。
为了更彻底地调试它,我会提取与数据库通信的代码,并创建一个反复运行该部分的小应用程序。既然你说实际与数据库进行通信需要花费几分钟时间,而且由于我们在互操作程序集中得到了错误,那么最好对此进行压力测试。