Those instructions have a lot of inaccuracy.
a) Setting "Invoke handler only if mapped to file" does not prevent a non-file from being mapped to the handler, the handler is only mapped based on verb and path - it will just prevent the handler from being called, which is happening here.
b) If you need IIS7 to work exactly like IIS6, you need to put your application in classic mode and add a *-ScriptMap to aspnet_isapi.dll (using the "add Wildcard ScriptMap" link in the context menu) - also on 64-bit machine, make sure to add wildcard mapping to both 32-bit and 64-bit aspnet_isapi.dll. The change in configuration for StaticFile is neither needed nor helpful.
c) Keeping IIS7 in integrated mode and setting runAllModulesForAllRequests in the modules section should get you pretty much what you want though without doing all the *-ScriptMap/DefaultHandler stuff (%windir%\system32\inetsrv\appcmd.exe set config "My Site/My App" -section:system.webServer/modules -runAllModulesForAllRequests:true)