Hi people, I've written a small app that reads from a text file, writes to another one and sends a couple of emails (using System.Net.Mail).

It runs on a Windows 2000 server machine (IBM P3/1,2) that also runs BlackIce. My application is scheduled to run (using Windows Scheduler) periodically during the day. What happens is that every about 3 days or so the machince crashes giving the following error.

Event Type: Information
Event Source: Save Dump
Event Category: None
Event ID: 1001
Date:  24/5/2006
Time:  6:11:34 πμ
User:  N/A
Computer: MyComputerName
Description:
The computer has rebooted from a bugcheck.  The bugcheck was: 0x00000050 (0xe4ff7000, 0x00000000, 0xbfd88b78, 0x00000001). Microsoft Windows 2000 [v15.2195]. A dump was saved in: C:\WINNT\MEMORY.DMP.

Looking up the error code, I've concluded that something is trying to access a memory address that does not exist (PAGE_FAULT_IN_NONPAGED_AREA). I have no direct memory references in my code, nor do I force the use of the Garbage Collector. Most articles related to this error state that it is either bad RAM, bad device drivers, or a trojan/virus. Nevertheless the machine crashes only when my software is running.

Since this is a production server I installed a similar setup on a virtual machine using MS Virtual Server 2005 R2 and the problem does not occur which leads me to the conclusion that there is something wrong with the production server.

So I'm asking whether .NET2 can handle memory efficiently or do such problems occur? Could it be that other software running could reference memory space that mine is using? And supposing that my code is badly written, would it be capable of bringing down a server since it runs in address space managed by .NET2?

Any advice is greatly appreciated.