我们最近在将我们的Web应用程序从Windows Server 2003和IIS6迁移到Windows Server 2008 Standard 32位和IIS7时遇到了问题。
Web应用程序是一个经典的ASP应用程序,它使用许多传统的COM +组件进行某些数据库操作。数据库服务器是在Linux上运行的Oracle 10g数据库,Oracle客户端也是10g。
问题是,当尝试在事务中执行插入/更新/删除时,它会抛出一个异常,说明事务不能在指定的事务协调器中登记。读取查询没问题。如果COM +组件配置为不需要事务但是这不是我们系统的选项,那么DML命令也可以正常工作。
我知道MSDTC配置正确,COM +组件在安全设置和打开的端口(防火墙完全关闭)方面也是如此,因为在同一台服务器上我们也有一个使用相同COM +组件的Windows服务工作正常。对于MSDTC和COM +组件,我甚至为这个服务器上的几乎每个用户帐户提供权限和权限,所以无论IIS中运行代码的线程的身份如何,我都说它应该被覆盖得非常多那个。
现在已经尝试了几天,我们在互联网上找到的所有内容都是我们已经涵盖的内容,如DTC配置和防火墙问题。不知道还有什么可以尝试,因为Windows服务应用程序在同一服务器设置中运行正常。