4

I asked this on Stack Overflow, but it was suggested that I also ask it here, since it could be related to IIS:

If I create an out-of-the-box ASP.NET MVC 3 Web Application (non-empty, Razor, no unit tests) and deploy it to an IIS 7.5 site (.NET 4, Integrated Pipeline), every controller action I trigger causes a ton of "name not found" and "path not found" errors in procmon.

The w3wp.exe process is trying to visit file system locations that the MVC Routing engine should pick up and handle. This is a small portion of the procmon log after clicking the "LogOn" link one time only:

Process Monitor Output

Is this expected behavior? It doesn't feel right to me.

I came across this because my server CPU utilization was pegged at 100%. One of my calls was happening frequently enough (causing the "path not found" error) that it was eating up CPU. As soon as I created a file system folder at the path it was trying to access, the CPU utilization dropped to 0% (~85 concurrent users on the site in both cases).

Noah Heldman
  • 141
  • 4

1 Answers1

3

That is normal.

Each view file (.cshtml is a Razor view using C#) can be in a number of well known locations (this allows multiple view engines in a project and shared code). The first time a controller needs a view it has to be found.

Repeated requests for the same view should not cause further searches, but the ASP.NET MVC runtime will detect updates: check the file's (including project assemblies) don't have dates in the future or something triggering AppDomain restarts.

Richard
  • 5,324
  • 1
  • 23
  • 20
  • Just to be clear, this is not the output from the first request to /Account/LogOn, but from a subsequent request. None of the file or assembly dates are in the future, and I'm not aware of anything that would be triggering AppDomain restarts (like the AppPool recycling more often than normal). Since this is an out-of-the-box MS-generated website deployed to a vanilla IIS 7.5 web site, it's a bit odd. – Noah Heldman Mar 25 '11 at 17:13
  • @NoahHeldman: In tghe MVC3 project I have open here, I did some checking. While diffrerent requests triggered file searching there didn't appear to be any duplicates (ie. once a path was checked it would not be checked again), but I only tried briefly. – Richard Mar 25 '11 at 17:25
  • That is strange, I am seeing a ton of dupes. – Noah Heldman Mar 25 '11 at 20:56
  • I created a new OOTB MVC3 web app, published to a new IIS 7.5 site on a new Win2008 R2 server, and it's still happening for me. If I refresh /Account/LogOn multiple times, eventually it only triggers a single "PATH NOT FOUND" in procmon per refresh, but if I then visit /Account/Register, and come right back to /Account/LogOn, procmon looks like this: http://i.imgur.com/pthwM.png. That screenshot is the output from one visit to /Account/LogOn. – Noah Heldman Mar 29 '11 at 15:56