I’m doing some tracing in NewRelic, and I’m seeing almost every single request contains a call to ‘System.Web.Mvc.MvcHandler.ProcessAsyncRequest()’.
This function call can take anywhere from 300ms up to 100s (seriously, 100s). I tried to search msdn documentation, but there’s nothing on http://msdn.microsoft.com/en-us/library/system.web.mvc.mvchandler.aspx
clearly, something is lying to me here.
I have a few theories as to why this is taking so long:
-
type inference? I’m using structuremap.
-
server resource issues?
-
.net version incompatibility of some sort?
-
asp.net mvc incomopatibility of some sort?
Environment:
.net 4
asp.net mvc 3
dedicated vm
When I found this issue, I thought the same as @garfbradaz and looked through the MVC source. It was interesting, as I found no reference to the
ProcessAsyncRequestmethod.Hence, I decided it might be something New Relic were injecting, or as you say, a red herring and something is lying to us! I switched New Relic off, and got in touch with their support team.
Today, after a few emails from an extremely responsive and courteous member of the New Relic team, they got back to me and confirmed it’s a bug (of sorts). Here is their response:
EDIT: Further response from New Relic below – looks like they have a fix in place.
Nick from New Relic was excellent in responding to this and their product has been really useful, so I don’t have any bad feelings, just thought I’d share the details here.
Very happy to find out there are no ghosts in my MVC app anyway!
For now my advice to anyone having these problems is switch off New Relic until their next release.
EDIT 2: Nick from New Relic emailed me today – their latest agent (version 2.0.9.15) – is now available and should fix this issue.