我們最近在將Web應用程序從Windows Server 2003和IIS6遷移到Windows Server 2008 Standard 32位和IIS7時遇到了問題。運行經典ASP網站的IIS7使用COM +組件進行分佈式事務
Web應用程序是一個傳統的ASP應用程序,它正在使用一些傳統的COM +組件進行某些數據庫操作。數據庫服務器是在Linux上運行的Oracle 10g數據庫,Oracle客戶端也是10g。
問題是,當試圖在事務中執行插入/更新/刪除時,它會引發異常,說明事務不能登記在指定的事務協調器中。閱讀查詢是確定的。如果COM +組件配置爲不需要事務,但DML命令也可以正常工作,但對於我們的系統來說,這不是一個真正的選項。
我知道MSDTC配置正確,COM +組件在安全設置和打開的端口(防火牆完全關閉)方面也是如此,因爲在同一臺服務器上我們也有一個使用相同COM +組件的Windows服務,一個工作正常。我甚至爲該MSDTC和COM +組件提供了該服務器上幾乎所有用戶帳戶的權利和權限,因此無論在IIS中運行代碼的線程的身份如何,我都會說它應該包含很多內容由此。
幾天以來,我們一直在試圖深入瞭解這一點,我們可以在互聯網上找到我們已經涵蓋的東西,例如DTC配置和防火牆問題。不知道還有什麼要嘗試,特別是因爲Windows服務應用程序在相同的服務器設置中運行得很好。
感謝您的鏈接,我已經檢查和雙重檢查所有與配置看起來不錯。它必須自Windows服務使用相同的COM +組件,相同的oracle客戶端,相同的數據庫等運行得很好。唯一的問題是ASP應用程序 – Ionut