There should be another message like this one in the system log that will give you an error code:
A process serving application pool 'MyAppPool' terminated unexpectedly. The process id was '3416'. The process exit code was '0xc0000005'.
You can look up the error code (the process exit code) with the Microsoft Exchange Error Lookup Tool. I know this problem isn't about Exchange, but the tool is good for looking up error codes from various Microsoft products.
So that should give you a start on looking for the source of the problem. If you haven't already, I'd suggest moving the application into its own application pool.
To get more information about the crash, you could use Debug Diagnostics. I've had problems with that tool occasionally, so you might instead need to use adplus, which is part of Debugging Tools for Windows. You can use adplus like this.
Find your application pool's PID:
H:>%windir%\system32\inetsrv\appcmd list wp
WP "4072" (applicationPool:RDWebAccess)
Run adplus against that PID:
adplus –quiet –crash –p 4072 –o PATH_TO_DUMPFILE
Once you have a dump, you can load it in WinDbg (which is also part of Debugging Tools for Windows) and run the command "!analyze -v" to make it diagnose the crash.
I'd suggest disabling recycling for the application pool before you enable adplus or Debug Diagnostics so that the application pool doesn't disconnect the debugger to recycle.
Depending on the error code, it might also be a good idea to set up a counter log in Perfmon to see if you can correlate any resource contention (high CPU, low free memory, high number of waiting requests, etc) with the crashes.