2011-03-17 163 views
4

我試圖建立一個環境,其中源於Web服務器(asp.net)的TransactionScope將通過WCF將事務處理流傳送到應用程序服務器,然後傳送到數據庫。由於我不得不使用SQL Server 2005數據庫,這通常會導致事務被「提升」爲分佈式事務(多個服務調用可能會被包裝在此TransactionScope中),這意味着需要啓用分佈式事務處理協調器。DTC防火牆要求?

我已經成功地在本地機器上工作,其中Web服務器和應用服務器託管在同一臺機器上,連接到遠程數據庫。 DTC在端口135上進行RPC連接通信(以及較高的範圍)。我沒有兩個盒子的設置來測試...... DTC工作,端口135需要打開(從防火牆的角度來看)Web服務器和應用程序服務器之間的通信,還是僅僅在應用程序服務器上進行通信到數據庫?我從部署人員那裏得到關於從網絡嚮應用程序服務器開放135的回推,想知道這是否是必要的。我還沒有找到在線文檔,爲我澄清這一點。

一種邊緣問題,希望能從某個人那裏得到一些洞見,他們可能會遇到這個問題。

問候,

GA

回答

0

我認爲它比這更糟糕的DTC使用RPC調用來協調。您可能可以將這些解決方案固定到某個端口範圍,但這很複雜。我有一個類似的問題的項目 - 即使對同一個服務器推薦的查詢使用多個連接到DTC。我最終重構了代碼以在嘗試導航防火牆問題失敗後共享連接。我可以在我們的QA環境中使用它,但不能在生產環境中使用。有一些差異:質量保證是所有虛擬機,生產是SQL服務器上的真實硬件,也是集羣化的。操作系統負載儘可能相似,但可能存在較小的補丁差異,因爲質量保證箱具有比生產箱更廣泛的應用程序。

此MSDN文章可能有些用處:http://support.microsoft.com/kb/306843

+0

感謝您的回覆。我有解決方案的工作,並沒有試圖避免DTC(雖然我不需要它,除了SQL Server 2005「爲我推廣」它)。應用程序服務器和數據庫之間的防火牆使用RPC'協調器'的端口135,以及DTC事務的一系列可配置的高端端口(我使用5000 - 5200)。我只是好奇,如果我需要在Web服務器和應用服務器之間的防火牆中打開相同的端口,就像在應用和數據庫服務器(特別是135)之間對於通過WCF從Web到應用的事務一樣。 – Glenn 2011-03-17 19:43:26