我在设置项目中遗漏了什么吗?

时间:2011-05-25 15:09:46

标签: c# winforms enterprise-library windbg

我的.NET / Winform应用程序正在使用Enterprise Library 5.0日志记录块。它在我的机器上工作正常但在QA机器上失败了。我已经复制了所有必要的DLL 安装项目然而应用程序仍然在QA机器上崩溃。我在应用程序安装目录中复制了所有Enterprise Library 5.0 DLL,但这没有任何区别。什么想法可能是错的?

我没有得到堆栈跟踪但是当我附加WinDbg时,我看到以下内容:

0:027> !threads  
PDB symbol for mscorwks.dll not loaded  
ThreadCount: 12  
UnstartedThread: 0  
BackgroundThread: 8  
PendingThread: 0  
DeadThread: 2  
Hosted Runtime: no  
                                      PreEmptive   GC Alloc           Lock  
       ID OSID ThreadOBJ    State     GC       Context       Domain   Count APT Exception  
   0    1 19ec 0085b620      6020 Disabled 12889fd8:12889fe8 008533c8     1 STA (GC)  
   2    2 2af8 008708d0      b220 Enabled  00000000:00000000 008533c8     0 MTA (Finalizer)  
XXXX    3    0 0728aeb8      5820 Enabled  00000000:00000000 008533c8     0 Ukn  
   8    4 14cc 072c8e30    80a220 Enabled  00000000:00000000 008533c8     0 MTA (Threadpool Completion Port)  
  16    5 13a8 0c5370d8   180b220 Enabled  00000000:00000000 008533c8     0 MTA (Threadpool Worker)  
  17    6 23d4 00864560   200b220 Enabled  00000000:00000000 008533c8     0 MTA  
XXXX    7    0 0c5c3448      9820 Enabled  00000000:00000000 008533c8     0 MTA  
  22    8 2718 0c796e18    80a220 Enabled  00000000:00000000 008533c8     0 MTA (Threadpool Completion Port)  
  24    9 2208 07337c28   180b220 Enabled  00000000:00000000 008533c8     0 MTA (Threadpool Worker)  
  25    a 16ac 0c563a58   180b220 Enabled  00000000:00000000 008533c8     0 MTA (Threadpool Worker)  
  26    b  d98 072ce618   180b220 Enabled  00000000:00000000 008533c8     0 MTA (Threadpool Worker)  
  27    c 2760 0728e170      b022 Disabled 12855dfc:12856290 008533c8     2 MTA System.ExecutionEngineException (025210b4)  
0:027> kb  
ChildEBP RetAddr  Args to Child                
WARNING: Stack unwind information not available. Following frames may be wrong.  
1074e318 70187125 0728e170 1074e890 00000002 KERNELBASE!DebugBreak+0x2  
1074e7d4 7018735e 80131506 7018858e 00000000 mscorwks!GetAddrOfContractShutoffFlag+0x944f  
1074e7ec 70188599 80131506 7018858e 00000000 mscorwks!GetAddrOfContractShutoffFlag+0x9688  
1074e810 7007693b 1074e890 41f3b57e 0728e170 mscorwks!GetAddrOfContractShutoffFlag+0xa8c3  
1074e844 700767d9 1074e890 41f3b542 1074ea04 mscorwks!StrongNameErrorInfo+0x1855f  
1074e878 6ffdd478 1074e890 00004000 0728e170 mscorwks!StrongNameErrorInfo+0x183fd  
1074e8a4 6ffdd675 1074e9b4 1074f1bc 1074e988 mscorwks!GetMetaDataInternalInterface+0x9a25  
1074e8c8 77e96ac9 1074e9b4 1074f1bc 1074ea04 mscorwks!GetMetaDataInternalInterface+0x9c22  
1074e8ec 77e96a9b 1074e9b4 1074f1bc 1074ea04 ntdll!RtlDosSearchPath_Ustr+0xada  
1074e99c 77e6010f 0074e9b4 1074ea04 1074e9b4 ntdll!RtlDosSearchPath_Ustr+0xaac  
1074ed8c 6e202eb5 00000000 738b1151 1074eda8 ntdll!KiUserExceptionDispatcher+0xf  
1074edf4 6e719b9a 6ff6e268 12855de0 73947824 mscorlib_ni+0x1c2eb5  
1074ee10 60fa0148 139077ac 12851b6c 125ecef8 mscorlib_ni+0x6d9b9a  
1074ee24 60f9fc4a 1074f1bc 6ffe0178 ffffffff Microsoft_Practices_EnterpriseLibrary_Logging_ni+0xb0148  
1074ee70 60f9fbe5 60e90585 1074ee8c 60e9074c Microsoft_Practices_EnterpriseLibrary_Logging_ni+0xafc4a  
1074ee7c 60e9074c 1273b864 126a7b70 1074eeb0 Microsoft_Practices_EnterpriseLibrary_Logging_ni+0xafbe5  
1074ee8c 60e9060b 1247ffa4 60ebe938 126a7b70 Microsoft_Practices_EnterpriseLibrary_Common_ni+0x8074c  
1074eeb0 60e8ff01 1074eeec 60e90431 1247ff58 Microsoft_Practices_EnterpriseLibrary_Common_ni+0x8060b  
1074eeb8 60e90431 1247ff58 738c58e2 1247ff58 Microsoft_Practices_EnterpriseLibrary_Common_ni+0x7ff01  
1074eeec 60e9b984 1247ff58 1246dbd4 00000000 Microsoft_Practices_EnterpriseLibrary_Common_ni+0x80431  

2 个答案:

答案 0 :(得分:1)

你是app正确加载然后崩溃?

如果不是,最好运行Fusion Log Viewer并查看哪些dll无法加载。 复制qa机器上的fusionlogvw.exe,添加ForceLog -DWORD值 - 在0x1键下设置为HKLM\Software\Microsoft\Fusion

运行fusionlogvw.exe,然后运行您的应用程序。您应该看到所有程序集绑定统计数据都失败和成功。

这应该可以了解哪些dll没有加载。

post和此one可能有用。

答案 1 :(得分:0)

确保两台计算机都在.NET的相同版本上。尝试在另一个QA框上运行它,看看问题是否仍然存在。目前使用EntLib Logging并且从未见过该错误tbh