We've recently came across a problem while migrating our web application from Windows Server 2003 and IIS6 to Windows Server 2008 Standard 32 bit and IIS7.
The web application is a classic ASP application which is using a number of legacy COM+ components for some database operations. The database server is an Oracle 10g DB running on Linux and the Oracle client is also 10g.
The problem is that when trying to do an inset/update/delete within a transaction it throws an exception saying that the transaction cannot be enlist in the specified transaction coordinator. Read queries are OK. DML commands are also working fine if the COM+ components are configured to not require a transaction but that's not really an option for our system.
I know the MSDTC is configured correctly and so are the COM+ components both in terms of security settings and opened ports(firewall turned off completely) because on the same server we also have a windows service using the same COM+ components and that one is working fine. I even went as far as to give rights and permissions to almost every user account on this server for both MSDTC and the COM+ components so whatever the identity of the thread that is running the code in IIS I'd say it should be pretty much covered by that.
Have been trying to get to the bottom of this for a few days now and all we could find on the internet were things that we already cover, like DTC configuration and firewall issues. Not sure what else to try particularly since the windows service application is running just fine in the same server setup.