2010-11-03 169 views
3

當我使用Web應用程序時,應用程序將我註銷。我認爲這可能是IIS回收。IIS問題,Web應用程序

事件查看器消息:

.NET Runtime version 2.0.50727.4927 - Fatal Execution Engine Error (000007FEF582FA42) (80131506) 
---------- 

Faulting application name: w3wp.exe, version: 7.5.7600.16385, time stamp: 0x4a5bd0eb 
Faulting module name: mscorwks.dll, version: 2.0.50727.4927, time stamp: 0x4a27466f 
Exception code: 0xc0000005 
Fault offset: 0x00000000006be81f 
Faulting process id: 0x%9 
Faulting application start time: 0x%10 
Faulting application path: %11 
Faulting module path: %12 
Report Id: %13 

------------- 
Fault bucket , type 0 
Event Name: APPCRASH 
Response: Not available 
Cab Id: 0 

Problem signature: 
P1: w3wp.exe 
P2: 7.5.7600.16385 
P3: 4a5bd0eb 
P4: mscorwks.dll 
P5: 2.0.50727.4927 
P6: 4a27466f 
P7: c0000005 
P8: 00000000006be81f 
P9: 
P10: 

Attached files: 

These files may be available here: 
C:\ProgramData\Microsoft\Windows\WER\ReportQueue\AppCrash_w3wp.exe_6a41af6fc5f73afd65a4b62225f4f0ff51ba820_60e9d666 

Analysis symbol: 
Rechecking for solution: 0 
Report Id: d745615a-e67c-11df-83c0-d8d385b73c58 
Report Status: 4 

我分析了WinDbg的崩潰轉儲,但我不知道如何解決,什麼是問題:

0:056> !analyze -v 
******************************************************************************* 
*                    * 
*      Exception Analysis         * 
*                    * 
******************************************************************************* 

Unable to load image C:\Windows\assembly\NativeImages_v2.0.50727_64\mscorlib\9a017aa8d51322f18a40f414fa35872d\mscorlib.ni.dll, Win32 error 0n2 
*** WARNING: Unable to verify checksum for mscorlib.ni.dll 
Unable to load image C:\Windows\assembly\NativeImages_v2.0.50727_64\System.Web.RegularE#\bf11731ff6e75c72e9939a05151e7484\System.Web.RegularExpressions.ni.dll, Win32 error 0n2 
*** WARNING: Unable to verify checksum for System.Web.RegularExpressions.ni.dll 
Unable to load image C:\Windows\assembly\NativeImages_v2.0.50727_64\System.Web\d753bba0990df9a19883f05d5b681d3b\System.Web.ni.dll, Win32 error 0n2 
*** WARNING: Unable to verify checksum for System.Web.ni.dll 
Unable to load image C:\Windows\assembly\NativeImages_v2.0.50727_64\System.Data\46a0336046744a9f29986b208b8d38d4\System.Data.ni.dll, Win32 error 0n2 
*** WARNING: Unable to verify checksum for System.Data.ni.dll 
Unable to load image C:\Windows\winsxs\amd64_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.7600.16385_none_2b4f45e87195fcc4\GdiPlus.dll, Win32 error 0n2 
*** WARNING: Unable to verify timestamp for GdiPlus.dll 
Unable to load image C:\Windows\assembly\NativeImages_v2.0.50727_64\System\247913fa7ae6fcf04ea33d28d24ab611\System.ni.dll, Win32 error 0n2 
*** WARNING: Unable to verify checksum for System.ni.dll 
GetPageUrlData failed, server returned HTTP status 500 
URL requested: http://watson.microsoft.com/StageOne/w3wp_exe/7_5_7600_16385/4a5bd0eb/mscorwks_dll/2_0_50727_4927/4a27466f/c0000005/006be81f.htm?Retriage=1 

FAULTING_IP: 
mscorwks!COMCryptography::_GetKeyParameter+24f 
000007fe`f5dde81f 418b4514  mov  eax,dword ptr [r13+14h] 

EXCEPTION_RECORD: ffffffffffffffff -- (.exr 0xffffffffffffffff) 
ExceptionAddress: 000007fef5dde81f (mscorwks!COMCryptography::_GetKeyParameter+0x000000000000024f) 
    ExceptionCode: c0000005 (Access violation) 
    ExceptionFlags: 00000000 
NumberParameters: 2 
    Parameter[0]: 0000000000000000 
    Parameter[1]: 0000000000000014 
Attempt to read from address 0000000000000014 

PROCESS_NAME: w3wp.exe 

ERROR_CODE: (NTSTATUS) 0xc0000005 - The instruction at 0x%08lx referenced memory at 0x%08lx. The memory could not be %s. 

EXCEPTION_CODE: (NTSTATUS) 0xc0000005 - The instruction at 0x%08lx referenced memory at 0x%08lx. The memory could not be %s. 

EXCEPTION_PARAMETER1: 0000000000000000 

EXCEPTION_PARAMETER2: 0000000000000014 

READ_ADDRESS: 0000000000000014 

FOLLOWUP_IP: 
mscorwks!COMCryptography::_GetKeyParameter+24f 
000007fe`f5dde81f 418b4514  mov  eax,dword ptr [r13+14h] 

MOD_LIST: <ANALYSIS/> 

NTGLOBALFLAG: 0 

APPLICATION_VERIFIER_FLAGS: 0 

MANAGED_STACK: !dumpstack -EE 
No export dumpstack found 

MANAGED_BITNESS_MISMATCH: 
Managed code needs matching platform of sos.dll for proper analysis. Use 'x64' debugger. 

ADDITIONAL_DEBUG_TEXT: Followup set based on attribute [Is_ChosenCrashFollowupThread] from Frame:[0] on thread:[PSEUDO_THREAD] 

LAST_CONTROL_TRANSFER: from 000007fef3a0bf50 to 000007fef5dde81f 

FAULTING_THREAD: ffffffffffffffff 

DEFAULT_BUCKET_ID: NOSOS 

PRIMARY_PROBLEM_CLASS: NOSOS 

BUGCHECK_STR: APPLICATION_FAULT_NOSOS_NULL_CLASS_PTR_DEREFERENCE_INVALID_POINTER_READ_WRONG_SYMBOLS_CALL_STACKIMMUNE 

STACK_TEXT: 
00000000`00000000 00000000`00000000 w3wp.exe+0x0 


SYMBOL_NAME: w3wp.exe 

FOLLOWUP_NAME: MachineOwner 

MODULE_NAME: w3wp 

IMAGE_NAME: w3wp.exe 

DEBUG_FLR_IMAGE_TIMESTAMP: 4a5bd0eb 

STACK_COMMAND: ** Pseudo Context ** ; kb 

FAILURE_BUCKET_ID: NOSOS_c0000005_w3wp.exe!Unknown 

BUCKET_ID: X64_APPLICATION_FAULT_NOSOS_NULL_CLASS_PTR_DEREFERENCE_INVALID_POINTER_READ_WRONG_SYMBOLS_CALL_STACKIMMUNE_w3wp.exe 


Followup: MachineOwner 
+0

是啊你的工作進程正在崩潰,實現try catch塊,嘗試獲取錯誤並登錄到事件處理程序或其他東西。 – 2010-11-03 07:57:53

+0

感謝上千次詢問,然後回答這個問題的細節!你真的幫助我學習今天有價值的東西;我真的非常感謝你有時間發佈這一切! – kape123 2011-07-19 06:42:48

回答

4

我解決了這個問題。 解決步驟:

  • 首先我打開ControlPanel控制面板> ActionCenter>問題報告
  • 我看到的問題清單。和我的IIS崩潰問題。
  • 我輸入了物品詳細信息並保存爲轉儲。
  • 我下載了Windbg,然後打開它的轉儲。
  • 並輸入命令!analyze -v

WinDBG的analized並顯示這樣的文字:

GetPageUrlData failed, server returned HTTP status 404 
URL requested: http://watson.microsoft.com/StageOne/w3wp_exe/7_5_7600_16385/4a5bd0eb/mscorwks_dll/2_0_50727_4927/4a27466f/c0000005/006be81f.htm?Retriage=1 

FAULTING_IP: 
mscorwks!COMCryptography::_GetKeyParameter+24f 
000007fe`f5dde81f 418b4514  mov  eax,dword ptr [r13+14h] 

EXCEPTION_RECORD: ffffffffffffffff -- (.exr 0xffffffffffffffff) 
ExceptionAddress: 000007fef5dde81f (mscorwks!COMCryptography::_GetKeyParameter+0x000000000000024f) 
    ExceptionCode: c0000005 (Access violation) 
    ExceptionFlags: 00000000 
NumberParameters: 2 
    Parameter[0]: 0000000000000000 
    Parameter[1]: 0000000000000014 
Attempt to read from address 0000000000000014 

PROCESS_NAME: w3wp.exe 

ERROR_CODE: (NTSTATUS) 0xc0000005 - The instruction at 0x%08lx referenced memory at 0x%08lx. The memory could not be %s. 

EXCEPTION_CODE: (NTSTATUS) 0xc0000005 - The instruction at 0x%08lx referenced memory at 0x%08lx. The memory could not be %s. 

EXCEPTION_PARAMETER1: 0000000000000000 

EXCEPTION_PARAMETER2: 0000000000000014 

READ_ADDRESS: 0000000000000014 

FOLLOWUP_IP: 
mscorwks!COMCryptography::_GetKeyParameter+24f 
000007fe`f5dde81f 418b4514  mov  eax,dword ptr [r13+14h] 

MOD_LIST: <ANALYSIS/> 

NTGLOBALFLAG: 0 

APPLICATION_VERIFIER_FLAGS: 0 

MANAGED_STACK: !dumpstack -EE 
No export dumpstack found 

MANAGED_BITNESS_MISMATCH: 
Managed code needs matching platform of sos.dll for proper analysis. Use 'x64' debugger. 

ADDITIONAL_DEBUG_TEXT: Followup set based on attribute [Is_ChosenCrashFollowupThread] from Frame:[0] on thread:[PSEUDO_THREAD] 

LAST_CONTROL_TRANSFER: from 000007fef3a0bf50 to 000007fef5dde81f 

FAULTING_THREAD: ffffffffffffffff 

DEFAULT_BUCKET_ID: NOSOS 

PRIMARY_PROBLEM_CLASS: NOSOS 

BUGCHECK_STR: APPLICATION_FAULT_NOSOS_NULL_CLASS_PTR_DEREFERENCE_INVALID_POINTER_READ_WRONG_SYMBOLS_CALL_STACKIMMUNE 

STACK_TEXT: 
00000000`00000000 00000000`00000000 w3wp.exe+0x0 


SYMBOL_NAME: w3wp.exe 

FOLLOWUP_NAME: MachineOwner 

MODULE_NAME: w3wp 

IMAGE_NAME: w3wp.exe 

DEBUG_FLR_IMAGE_TIMESTAMP: 4a5bd0eb 

STACK_COMMAND: ** Pseudo Context ** ; kb 

FAILURE_BUCKET_ID: NOSOS_c0000005_w3wp.exe!Unknown 

BUCKET_ID: X64_APPLICATION_FAULT_NOSOS_NULL_CLASS_PTR_DEREFERENCE_INVALID_POINTER_READ_WRONG_SYMBOLS_CALL_STACKIMMUNE_w3wp.exe 

WATSON_STAGEONE_URL: 
Followup: MachineOwner 

0:056> .exr 0xffffffffffffffff 
ExceptionAddress: 000007fef5dde81f (mscorwks!COMCryptography::_GetKeyParameter+0x000000000000024f) 
    ExceptionCode: c0000005 (Access violation) 
    ExceptionFlags: 00000000 
NumberParameters: 2 
    Parameter[0]: 0000000000000000 
    Parameter[1]: 0000000000000014 
Attempt to read from address 0000000000000014 

所以我加入這個代碼解密方法:如果(String.IsNullOrEmpty(值))返回字符串.Empty;

public static string Decrypt(string value) 
    { 
     SymmetricAlgorithm algorithm = SymmetricAlgorithm.Create(); 
     ICryptoTransform decryptor = algorithm.CreateDecryptor(EncryptionKey, EncryptionVector); 

     // I control value 
     **if (String.IsNullOrEmpty(value)) 
      return String.Empty;** 

     byte[] encryptedBytes = Convert.FromBase64String(value); 
     MemoryStream memoryStream = new MemoryStream(encryptedBytes); 
     CryptoStream cryptoStream = new CryptoStream(memoryStream, decryptor, CryptoStreamMode.Read); 
     ... 
    } 

問題解決了。

+0

好的解決方案!這使我們的一天! – Anass 2016-02-04 20:49:09

0

的ASP.NET工作進程與崩潰訪問衝突。這通常是解引用NULL或無效指針的結果。嘗試訪問C#中的空引用通常會生成ASP.NET能夠捕獲的託管異常,我假設您的Web應用程序正在使用COM互操作或正在調用崩潰的非託管(C++)代碼。

不幸的是,這與我們從上面的信息可以告訴您的差不多。您需要調試您的過程以瞭解崩潰的確切原因。

+0

是的,可能有很多種可能性。 – 2010-11-03 08:01:17

2

苔絲Ferrandez有一些偉大的教程和如何使用DebugDiag資料和WinDbg的信息,以明確爲什麼發生這種情況:

If it is broken, fix it you should

還有走你通過分析工人實驗室進程崩潰:

.NET Debugging Demos Lab 5: Crash

.NET Debugging Demos Lab 2: Crash - Review

+0

在我們將項目32位更改爲64位之前,我們的Web應用程序無任何例外地工作,並且我們開始在新服務器中使用服務器2008,IIS 7。 – KaFKaFy 2010-11-03 14:20:45

+0

@KaFKaFy - 你應該在這個問題中包含這個相當重要的信息塊! – Kev 2010-11-03 14:27:17

+0

對不起Kev,我不知道這個改變時,我寫了問題:(我們的團隊做了這個改變。 – KaFKaFy 2010-11-03 14:55:23

1

我遇到了完全相同的症狀,真正的原因是我意外地創建了無限遞歸,從而導致了堆棧溢出。請注意,您需要在糾正錯誤後重新啓動應用程序池。

+0

你是如何設法發現無限遞歸? – 2015-09-07 12:09:40