I have a new program which has been running 24/7 for over 2 weeks now but last night it crash/went down with no Fatal log exception in my log4net file ...the process appears to have been killed by someting .... and when I looked in the Windows Event Viewer Application log it contained an error for the programs process saying '.NET Runtime 2.0 Error' Type: Error EventID: 1000.
This appears to be a .Net runtime failure/bug and has nothing to do with my code.
Does anyone know what caused this? Is there a .Net runtime fix?
/I'm running .Net 3.5 on a Window Server 2003 vm slice.
Thanks in advance.
Edit:
Full event description below. There's were no events around it for hours and there were Info level not Error like this one.
Source: .NET Runtime 2.0 Error
Type: Error
Event Id: 1000
Event log description:
Faulting application CompanyName.AppName.exe, version 0.0.0.0, stamp 4ca5d33d, faulting module mscorwks.dll, version 2.0.50727.3607, stamp 4add5446, debug? 0, fault address 0x0010724e.
For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.
As you are not getting any useful information at the time of the crash, an alternative approach is to attach a debugger to the crashing EXE
. There are two ways I suggest:
Using Visual Studio
If you have Visual Studio installed on the same PC/server as the crashing app, attach Visual Studio to the EXE
whilst it's running. Here's an intro on how to do this:
http://msdn.microsoft.com/en-us/library/c6wf8e4z.aspx
Using WinDbg
This is a very low-level, and powerful, debugger for Windows. This could certainly help you with your problem. However, there is a steep learning curve in how to get started in using it. The .NET framework comes with a DLL
named SOS.DLL
(found in the C:\Windows\......
system folder) which contains many commands that you can use in WinDbg to analyse a .NET application. These include listing thread stack and displaying exception information.
A very good source of information on how to debug .NET issues with WinDbg is
http://blogs.msdn.com/b/tess/
There are many great examples of how to debug issues, such as
http://blogs.msdn.com/b/tess/archive/2008/02/11/net-debugging-demos-lab-2-crash-review.aspx
You can download WinDbg from:
- 32bit version
http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx#E3
- 64bit version
http://www.microsoft.com/whdc/devtools/debugging/install64bit.mspx-
I would highly recommend the Visual Studio approach, due to its simplicity. However, by far the most powerful way to debug your app is to use WinDbg, but it can be intimidating for first time users.
EDIT:
Here's another link that might be of use:
http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/ebd10d1f-902b-4a95-ba42-e87c4f817097
The error looks like a .NET Runtime 2.0 error due to null reference is in the user policy cache. Make sure that you have all the latest .NET service pack installed. Also take a look at this Microsoft answer.