2011-05-25 87 views
1

我的.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 
+0

你的符號不好 - 首先修復並得到一個新的堆棧跟蹤並將其粘貼到這裏 – 2011-05-31 19:00:18

+0

一些問題:在操作系統(32位/ 64位)方面,QA環境和開發環境是什麼?它在啓動時失敗還是在另一個點上?如果它在啓動過程中,您嘗試使用[Assembly Binding Log Viewer](http://msdn.microsoft.com/zh-cn/library/e74a18c4.aspx)[Debug Obscure Loader Errors](http:// www。 hanselman.com/blog/BackToBasicsUsingFusionLogViewerToDebugObscureLoaderErrors.aspx)? – 2011-05-31 19:00:29

回答

1

你的應用程序正確加載,然後崩潰?

如果不是,您最好運行Fusion Log Viewer並查看哪些dll無法加載。 在qa機器上覆制fusionlogvw.exe,添加ForceLog -DWORD值 - 設置爲0x1下的HKLM\Software\Microsoft\Fusion密鑰。

運行fusionlogvw.exe,然後運行您的應用程序。你應該看到所有的程序集綁定統計失敗和成功。

這應該給出什麼dll沒有加載的想法。

This post and this one may be useful。

0

確保兩臺機器都在.NET的版本相同。嘗試在另一個QA框中運行它,看看問題是否仍然存在。目前使用EntLib日誌記錄和從未見過錯誤tbh

+0

@anvardek:兩者都具有相同版本的.NET。第三臺機器也存在同樣的問題。奇怪的是,我也一直在使用EntLib。它是我第一次看到它 – 2011-05-25 17:02:22

+0

看起來像它創建了8個後臺線程,可能是線程問題。很難看到,您可以將調試器附加到遠程機器上(確保您部署了調試版本),然後您可以在Visual Studio中看到引發異常的位置。這就是我在服務器上遇到應用程序問題時所做的工作,同時它在我的包裝箱上工作正常 – 2011-05-26 16:21:26

+0

除了「.NET」的相同「主要」版本之外,請確保您在兩臺計算機上應用了相同/最新的Service Pack .NET和Windows)。 如果可能,請嘗試@ anvarek的遠程調試建議。如果QA不想允許,請參閱是否可以從QA機器創建VM並在VM上嘗試。 如果這不起作用,我會開始比較機器之間安裝的軟件和安全策略。例如,你是否正在寫入事件日誌?是否有一些政策可以阻止質量保證機器? – David 2011-05-31 19:07:03

相關問題