If you migrate your ASP and COM+ application from Windows 2003 to Windows 2008 you may find that your application fails. The possible errors include 800a0005 “Invalid procedure call or argument,” 8004e025 “COM+ Activation failed because an initialization function failed” and “Object Required.”

The root cause can be related to IIS intrinsic properties if your application uses IIS intrinsic objects (Application, Server, Session, Request and Response.) As documented in KB287422, IIS intrinsics flow by default when you call COM+ components from IIS 6.0 on Windows 2003. As a result callbacks happen to marshal the IIS intrinsics regardless whether your application actually uses IIS intrinsic objects or not. There are a number of issues that are associated with the callbacks (see the same article.) For this reason we disabled IIS intrinsic properties on Windows Vista, Windows 2008, Windows 7 and Windows 2008 R2 out of the box.

To enable IIS intrinsic properties for a component (e.g. prjSimple.clsSimple below) on Windows 2008 and later versions, check the “Allow IIS intrinsic properties” checkbox in the Properties page of the component in Component Services MMC and click the Apply button. To enable IIS intrinsic properties once for more than one components in an application, you can select them all and open the properties page.

 

image

 

image

 

You can also use the VBScript included in the KB article below to turn on/off IIS intrinsics flows.

IIS intrinsics flow by default when you call COM+ components from IIS 5.0 and later versions of IIS