什么会导致任何.NET应用程序立即崩溃。。。除了我在VisualStudio中创建和调试的项目之外?

什么会导致任何.NET应用程序立即崩溃。。。除了我在VisualStudio中创建和调试的项目之外?,.net,visual-studio-2008,crash-dumps,.net,Visual Studio 2008,Crash Dumps,我的软件最近被部署给一位客户,他说应用程序启动后立即崩溃。经过一些初步调试后,客户向我提供了对其中一台无法运行应用程序的计算机的远程访问。我发现崩溃不是我的应用程序特有的。任何依赖.NET framework的应用程序都会立即崩溃 很方便,安装了VisualStudio2008,所以我在上面创建了一个快速的hello world应用程序,并单击了Debug。应用程序运行良好。但是,当我试图在visual studio之外的/bin/Debug/HelloWorld.exe目录中执行生成的二进制文

我的软件最近被部署给一位客户,他说应用程序启动后立即崩溃。经过一些初步调试后,客户向我提供了对其中一台无法运行应用程序的计算机的远程访问。我发现崩溃不是我的应用程序特有的。任何依赖.NET framework的应用程序都会立即崩溃

很方便,安装了VisualStudio2008,所以我在上面创建了一个快速的hello world应用程序,并单击了Debug。应用程序运行良好。但是,当我试图在visual studio之外的/bin/Debug/HelloWorld.exe目录中执行生成的二进制文件时,它崩溃了

我尝试过的事情列表(更新)

  • 我检查了“Everyone”是否具有c:\Windows的读取和执行权限
  • 为了测试问题是否出在.NET Framework(而不是我的应用程序)上,我尝试将Paint.NET下载到计算机上。安装程序前端以相同的方式崩溃
  • 按照中所述对.NET框架进行了修复(Boy很有趣,也很耗时)。不走运
  • 已安装.NET3.5SP1(在它刚刚安装.NET3.5之前)注意:我的应用程序的目标是2.0,所以我做这件事更像是一个长期目标。。。但在这个过程中,我了解到.NET3.5SP1还更新了底层框架
  • 跑。此工具表示.NET已成功安装。(我忘了我是否检查了所有版本,但至少2.0起作用)
  • 测试了一些针对.NET2.0和.NET3.5的迷你HelloWorld应用程序,它们都以相同的方式崩溃
  • 尝试通过windbg命令行启动.NET应用程序。这样做确实允许我调用简单的hello world应用程序。因此,简单的.NET hello world在windbg调用或通过visual studio中的调试启动时工作。。。但如果我尝试独立执行,则不会执行。
我使用WinDbg创建了一个转储文件。这对我来说并不是那么有启发性

FAULTING_IP:  mscorwks!PEImage::GetEntryPointToken+21 79f4ff9d f6401010        test    byte ptr [eax+10h],10h

EXCEPTION_RECORD:  0012f710 -- (.exr 0x12f710) ExceptionAddress: 79f4ff9d (mscorwks!PEImage::GetEntryPointToken+0x00000021) ExceptionCode: c0000005 (Access violation)   ExceptionFlags: 00000000 NumberParameters: 2    Parameter[0]: 00000000    Parameter[1]: 00000010 Attempt to read from address 00000010

FAULTING_THREAD:  00000b44
PROCESS_NAME:  MyProcess.exe
ERROR_CODE: (NTSTATUS) 0x80000003 - {EXCEPTION}  Breakpoint  A breakpoint has been reached.

EXCEPTION_CODE: (HRESULT) 0x80000003 (2147483651) - One or more arguments are invalid    
DETOURED_IMAGE: 1    
NTGLOBALFLAG:  0    
APPLICATION_VERIFIER_FLAGS:  0    
MANAGED_STACK: !dumpstack -EE OS Thread Id: 0xb44 (0) Current frame:  ChildEBP RetAddr  Caller,Callee

EXCEPTION_OBJECT: !pe cb10b4 Exception object: 00cb10b4 Exception type: System.ExecutionEngineException Message: <none> InnerException: <none> StackTrace (generated): <none> StackTraceString: <none> HResult: 80131506    
MANAGED_OBJECT_NAME:  System.ExecutionEngineException    
CONTEXT:  0012f72c -- (.cxr 0x12f72c) eax=00000000 ebx=00000000 ecx=00000000 edx=0000000e esi=001a1490 edi=00000001 eip=79f4ff9d esp=0012f9f8 ebp=0012fa1c iopl=0         nv up ei pl zr na pe nc cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00010246 mscorwks!PEImage::GetEntryPointToken+0x21: 79f4ff9d f6401010        test    byte ptr [eax+10h],10h     ds:0023:00000010=?? Resetting default scope    
READ_ADDRESS:  00000010     
FOLLOWUP_IP:  mscorwks!PEImage::GetEntryPointToken+21 79f4ff9d f6401010        test    byte ptr [eax+10h],10h    
BUGCHECK_STR:  APPLICATION_FAULT_NULL_CLASS_PTR_DEREFERENCE_SHUTDOWN    
PRIMARY_PROBLEM_CLASS:  NULL_CLASS_PTR_DEREFERENCE_SHUTDOWN
    DEFAULT_BUCKET_ID:  NULL_CLASS_PTR_DEREFERENCE_SHUTDOWN    
LAST_CONTROL_TRANSFER:  from 79ef02b5 to 79f4ff9d    
STACK_TEXT:   79f4ff9d mscorwks!PEImage::GetEntryPointToken+0x21 79ef02b5 mscorwks!PEFile::GetEntryPointToken+0xa0 79eefeaf mscorwks!SystemDomain::ExecuteMainMethod+0xd4 79fb9793 mscorwks!ExecuteEXE+0x59 79fb96df mscorwks!_CorExeMain+0x15c 7900b1b3 mscoree!_CorExeMain+0x2c 7c817077 kernel32!BaseProcessStart+0x23    

SYMBOL_STACK_INDEX:  0    
SYMBOL_NAME:  mscorwks!PEImage::GetEntryPointToken+21    
FOLLOWUP_NAME:  MachineOwner    
MODULE_NAME: mscorwks    
IMAGE_NAME:  mscorwks.dll    
DEBUG_FLR_IMAGE_TIMESTAMP:  471ef729    
STACK_COMMAND:  .cxr 0012F72C ; kb ; dds 12f9f8 ; kb    
FAILURE_BUCKET_ID:  NULL_CLASS_PTR_DEREFERENCE_SHUTDOWN_80000003_mscorwks.dll!PEImage::GetEntryPointToken    
BUCKET_ID:  APPLICATION_FAULT_NULL_CLASS_PTR_DEREFERENCE_SHUTDOWN_DETOURED_mscorwks!PEImage::GetEntryPointToken+21    
WATSON_STAGEONE_URL:  http://watson.microsoft.com/StageOne/MyProcess_exe/2_4_4_39/4a8a192c/unknown/0_0_0_0/bbbbbbb4/80000003/00000000.htm?Retriage=1

Followup: MachineOwner
FAULTING\u IP:mscorwks!PEImage::GetEntryPointToken+21 79f4ff9d f6401010测试字节ptr[eax+10h],10h
异常记录:0012f710——(.exr 0x12f710)异常地址:79f4ff9d(mscorwks!PEImage::GetEntryPointToken+0x00000021)异常代码:c0000005(访问冲突)异常标志:00000000数字参数:2参数[0]:00000000参数[1]:00000010尝试从地址00000010读取
错牙螺纹:00000b44
进程名称:MyProcess.exe
错误代码:(NTSTATUS)0x8000003-{EXCEPTION}断点已到达断点。
异常代码:(HRESULT)0x8000003(2147483651)-一个或多个参数无效
绕道图:1
NTGLOBALFLAG:0
应用程序\验证程序\标志:0
托管_堆栈:!转储堆栈-EE OS线程Id:0xb44(0)当前帧:ChildEBP RetAddr调用者,被调用者
异常对象:!pe cb10b4异常对象:00cb10b4异常类型:System.ExecutionEngineeException消息:InnerException:StackTrace(已生成):StackTraceString:HResult:80131506
托管对象名称:System.ExecutionEngineeException
上下文:0012f72c——(.cxr 0x12f72c)eax=00000000 ebx=00000000 ecx=00000000 edx=0000000 E esi=001a1490 edi=00000001 eip=79f4ff9d esp=0012f9f8 ebp=0012fa1c iopl=0 nv up ei pl zr na pe nc=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010246 mscorwks!PEImage::GetEntryPointToken+0x21:79f4ff9d f6401010测试字节ptr[eax+10h],10h ds:0023:00000010=??重置默认范围
读取地址:00000010
跟进:mscorwks!PEImage::GetEntryPointToken+21 79f4ff9d f6401010测试字节ptr[eax+10h],10h
错误检查\u STR:应用程序\u错误\u空\u类\u PTR\u取消引用\u关闭
主要\u问题\u类:空\u类\u PTR\u取消引用\u关闭
默认_BUCKET_ID:NULL_CLASS_PTR_DEREFERENCE_SHUTDOWN
最后一次控制转移:从79ef02b5到79f4ff9d
堆栈文本:79f4ff9d mscorwks!PEImage::GetEntryPointToken+0x21 79ef02b5 mscorwks!PEFile::GetEntryPointToken+0xa0 79eefeaf mscorwks!SystemDomain::ExecuteMainMethod+0xd4 79fb9793 mscorwks!ExecuteEXE+0x59 79fb96df mscorwks_CorExeMain+0x15c 7900b1b3 mscoree_CorExeMain+0x2c 7c817077内核32!BaseProcessStart+0x23
符号\u堆栈\u索引:0
符号名称:mscorwks!PEImage::GetEntryPointToken+21
跟进名称:机器所有者
模块名称:mscorwks
图像名称:mscorwks.dll
调试\u FLR\u图像\u时间戳:471ef729
STACK_命令:.cxr 0012F72C;kb;dds 12f9f8;kb
失败\u BUCKET\u ID:NULL\u CLASS\u PTR\u解除引用\u关机\u 8000003\u mscorwks.dll!PEImage::GetEntryPointToken
BUCKET\u ID:APPLICATION\u FAULT\u NULL\u CLASS\u PTR\u DEREFERENCE\u SHUTDOWN\u DETOURED\u mscorwks!PEImage::GetEntryPointToken+21
WATSON_STAGEONE_网址:http://watson.microsoft.com/StageOne/MyProcess_exe/2_4_4_39/4a8a192c/unknown/0_0_0_0/bbbbbbb4/80000003/00000000.htm?Retriage=1
跟进:机器所有者
编辑1:此错误的事件日志详细信息表示这是一个错误 .NET运行时版本2.0.50727.3053-致命的执行引擎错误(7A097706)(80131506)


(来源:)

编辑2(10-7-09):此问题仍然有效


编辑3(3-29-10):这个更新是为了让每个人都知道我从来没有成功地解决过这个问题。这台机器的客户对解决这台机器失去了兴趣,只是重新整理了机器:(.不过谢谢你的贡献。

听起来你在那里找到了一台“有趣”的机器。我不知道,但这是我的因果报应的建议

1) 除了Windows分配的常规用户权限外,还有一组专门针对.NET framework的单独安全设置。如果已安装.NET SDK,请在控制面板中查找“Microsoft.NET Framework配置”工具(可能位于“管理工具”下)。看看有没有