如何调试特定于环境的错误?

问题描述:

我有一个应用程序在本地计算机上运行非常好,使用各种环境(SQL,Windows)。然而,我们有一个特定的环境,它无法运行,在clr.dll中引发c0000005错误。如何调试特定于环境的错误?

是否有任何技术可以用来确定在这个特定的(有点受限的)环境中发生了什么? C#代码没有命中,所以在初始加载和设置失败的应用程序中有一些东西。

我不期待一个答案,为什么它会失败,但一些帮助我如何找到超过非常有限的崩溃报告。代码使用.net 4.6.2,所以应该有很少(如果有的话)与Windows工具本身的直接交互。我怀疑它是服务器上的一个损坏的DLL或应用程序正在尝试加载在此环境中丢失的某些内容。或者,它可能试图访问不允许的内容(这只是两台服务器之间的问题)。

+0

什么是“特定环境”?任何特定的操作系统和SQL版本?你有应用程序日志有一些关于错误的信息?您可以查看机器的事件日志,以查看在该应用程序中运行应用程序时出现了什么问题。 –

+0

不是该数字模式的错误(以5结尾)通常是与Access相关的错误?对不起,不能帮助你的实际问题。 –

+0

Windows服务器2008R2。在事件日志中没有任何帮助 - 它告诉我,clr.dll在c0000005失败,但我无法更深入地了解为什么它在这种特殊情况下失败。 –

Windows 2008已经为您创建了一个迷你转储。在这里阅读:https://msdn.microsoft.com/en-us/library/windows/desktop/ee416349(v=vs.85).aspx#writing_a_minidump

找到minidump并在Visual Studio,dmpcheck或其他工具中打开它。在某处应该有一些东西说SEH或访问冲突在其中一个堆栈跟踪。这会告诉你有问题的方法或功能。