C# ntdll.dll中的应用程序崩溃,版本:6.1.7601.23677,.Net Framework版本:v4.0.30319

C# ntdll.dll中的应用程序崩溃,版本:6.1.7601.23677,.Net Framework版本:v4.0.30319,c#,.net-4.5,ntdll,C#,.net 4.5,Ntdll,更新.Net Framework后,我的应用程序经常崩溃。下面是在事件查看器中找到的应用程序事件日志 出错的应用程序名称:MyApp.exe,版本:我的应用程序版本,时间 戳记:0x5885f545故障模块名称:ntdll.dll,版本: 6.1.7601.23677,时间戳:0x589c957a异常代码:0xc015000f故障偏移量:0x00084269故障处理id:0x%9故障处理 应用程序启动时间:0x%10正在出错的应用程序路径:%11正在出错 模块路径:%12报告Id:%13故障包全

更新.Net Framework后,我的应用程序经常崩溃。下面是在事件查看器中找到的应用程序事件日志

出错的应用程序名称:MyApp.exe,版本:我的应用程序版本,时间 戳记:0x5885f545故障模块名称:ntdll.dll,版本: 6.1.7601.23677,时间戳:0x589c957a异常代码:0xc015000f故障偏移量:0x00084269故障处理id:0x%9故障处理 应用程序启动时间:0x%10正在出错的应用程序路径:%11正在出错 模块路径:%12报告Id:%13故障包全名:%14 错误的包相对应用程序ID:%15

同样在下面,在事件日志中也发现了错误

应用程序:MyApp.exe.Net Framework版本:v4.0.30319
描述:由于未处理的异常,进程已终止。 异常信息:异常代码c015000f,异常地址77994269

对我来说,ntdll.dll和.Net版本之间似乎存在兼容性问题。是否有任何KB需要与.Net 4.0.30319一起安装

我正在分析崩溃转储,它显示在调用堆栈下面

0 0042eb84 7566171a ntdll!NtWaitForMultipleObjects+0x15
01 0042ec20 75551a08 KERNELBASE!WaitForMultipleObjectsEx+0x100
02 0042ec68 75554200 kernel32!WaitForMultipleObjectsExImplementation+0xe0
03 0042ec84 755780ec kernel32!WaitForMultipleObjects+0x18
04 0042ecf0 75577fab kernel32!WerpReportFaultInternal+0x186
05 0042ed04 755778a0 kernel32!WerpReportFault+0x70
06 0042ed14 7557781f kernel32!BasepReportFault+0x20
07 0042eda0 77395b67 kernel32!UnhandledExceptionFilter+0x1af
08 0042eda8 77395a44 ntdll!__RtlUserThreadStart+0x62
09 0042edbc 773958d1 ntdll!_EH4_CallFilterFunc+0x12
0a 0042ede4 773834c9 ntdll!_except_handler4+0x8e
0b 0042ee08 7738349b ntdll!ExecuteHandler2+0x26
0c 0042ee2c 7738343c ntdll!ExecuteHandler+0x24
0d 0042eeb8 77330143 ntdll!RtlDispatchException+0x127
0e 0042eeb8 773a41c9 ntdll!KiUserExceptionDispatcher+0xf
0f 0042f3e0 7555544c ntdll!RtlDeactivateActivationContext+0x154
10 0042f3f0 055e70ce kernel32!DeactivateActCtx+0x31
11 0042f434 013e1fd1 mydll!Mydll::Function+0x8e 
问题在于Windows 2008。在一台具有相同.Net版本和ntdll.dll版本6.1.7601.17514的计算机中,应用程序工作正常


但只有在ntdll.dll版本6.1.7601.23677时,应用程序才会崩溃。

确保至少安装了.NET 4.5.2;4、4.5和4.5.1不再受支持。除此之外,您还需要一个具有调试器和耐心(或重新安装)的人
c015000f
STATUS\u SXS\u EARLY\u DEACTIVATION
,这表明并行程序集存在问题,但这本身对解决问题没有多大帮助。myapp.exe是否具有.NET framework以外的依赖项?如果是,那么它是来自托管代码还是非托管代码?@AzazulHaq MyApp.exe与托管代码和非托管代码都有依赖关系。我还更新了问题中的调用堆栈在6.1.7601.17514(即vanilla 2008 R2 SP1)和6.1.7601.23677之间有6年的更新时间。其中任何一个附加了一条注释“可能导致涉及并行版本控制的崩溃”的可能性都不是很好。我希望你能得到答案,但我对此持怀疑态度。你可以调用
ActivateActCtx(*,&cookie1)在此之后,您或其他人调用
activateACTCTTX(*,&cookie2)然后调用
停用EACTCTX(0,cookie1)之前<代码>停用ATCTTX(0,cookie2)。绝对错误与
ntdll