Was using Cassini but switched to IIS Express. My initial thought was that I could remove all <system.web> except things like:
<authentication mode="Forms">
<forms loginUrl="/" />
</authentication>
My previous customErrors were setup like so:
<customErrors mode="On" defaultRedirect="/ServerError">
<error statusCode="404" redirect="/NotFound" />
</customErrors>
I removed this customErrors element when I switched to IISExpress. Now 404's no longer redirect to my nice "NotFound" page.
The AppPool used for my site is Clr4IntegratedAppPool which lets me know it's not using Classic.
Why is IISExpress so reliant on system.web whereas IIS 7.5 uses system.webServer?