不改變中間層,如何玩轉 .NET 的遠程處理功能?

原文連接
https://msdn.microsoft.com/enus/library/aa289846(v=vs.71).aspxhtml

Visual Studio .NET 2003web

該方案展現了傳統系統與託管代碼的集成方法,以及這些傳統系統如何使用核心 .NET 遠程服務。具體點說,該方案展現了在不改變中間層應用程序的前提下,如何利用 .NET 的遠程處理功能,將 .NET Web 應用與現存 Windows DNA 中間層架構結合起來。數據庫

若是你有現成的 Windows DNA 架構,並決定使用 ASP.NET 中的某些特性,但同時想保留在中間層 COM+ 業務和數據對象所作的「投資」,你能夠用如下方式部署分佈式架構。此外,正以下圖中顯示,用戶服務系統 ASP.NET 代碼、用戶服務等等)徹底獨立於中間商業服務網絡以外。數組

該方案的優勢是:無需修改中間層代碼。你如今能夠關閉全部此前用於 Windows DNA 架構方案的 DCOM 端口,同時得到公共語言運行時(CLR)、Web Forms 和 ASP.NET 性能提高等優點。瀏覽器

要實現此方案(下面所描述的安裝執行步驟),須要:安全

  • 在 Web和應用程序服務器上安裝 .NET Framework服務器

  • 在應用程序服務器上建立一個 Web 工程網絡

  • 將 remoting.cfg 文件複製到該 Web 工程的根目錄中架構

  • 將調用方程序集(assembly)複製到新建 Web 架構下的 \bin 目錄下。分佈式

  • 修改 Web服務器(客戶端)的 web.config 文件以便使用Http/Binary格式。具體細節請參考 .NET Remoting.aspx)。

注意:對於 TCP/Binary,須要 exe 而非 Web 工程,而且這一點在安裝說明中沒有涉及。

關鍵點

Fitch 和 Mather 7.0 示例使用 HTTP/Binary 而非 HTTP/SOAP。之因此使用 HTTP,是由於須要經過80端口防火牆。之因此 Binary 而非 SOAP 是受性能影響。對於大量的數據,Binary 性能優於 SOAP。所以,若是處理大量數據(例如數組、數據集和數據表),使用 Binary 格式。若是處理小塊數據,使用 SOAP 或者 Binary 格式並沒有多大差異。處理整數型數據亦然。若是遠程調用是經過80端口從半可信位置發起,建議使用 SSL和 IPSec 以確保通訊的安全。

註釋: 該案例僅用於演示說明在 Fitch 和 Mather 7.0 環境下,.NET 遠程處理與遺留 COM+ 組件的組合使用方法。在實踐中,若是通訊是橫跨整個廣域網(WAN),這種方案事實上是一個糟糕的設計。在本例中,分佈式服務器僅用於演示 .NET 遠程服務。對於 Fitch 和 Mather 7.0,這不是一種可取的分佈式方案。此外,在本案例中,.NET Framework 必須安裝在應用程序服務器上。

方案: .NET 與傳統系統整合

不改變中間層,如何玩轉 .NET 的遠程處理功能?

安裝

下面的安裝過程展現了上圖描述的多主機安裝案例。

注意:該方案假設數據庫安裝在一個獨立的服務器上。

執行安裝:

  1. 確保全部的設備上都安裝了 .NET Framework.

  2. 在 Web 服務器(點擊查看單個設備配置方法.aspx))上安裝 FMStocks7.MSI 或在應用程序集羣控制器( Application Center Cluster Controller)上安裝 FMStocks7 。

  3. 打開命令提示符並更改包含 Fitch 和 Mather 示例的目錄。默認目錄爲:\\machinename\[安裝了Visual Studio .NET的驅動盤]:\Program Files\Microsoft Visual Studio .NET 2003\Enterprise Samples\FMStocks7。

  4. 至此,能夠在單個服務器或整個應用程序中心集羣上安裝 BLL:

單個服務器

  • 在命令提示符上輸入:

fms.exe deploy RemoteMachine=MachineX Path=c:\FMStocks7_GAM Components=GAM

注意:更改參數以便其適合你的配置環境。輸入 fms.exe 且不加參數會出現幫助。該過程會將應用程序的 GAM 安裝到獨立的遠程服務器上。

在輸入以上命令後,將會看到如下操做:

Stopping IIS

Creating Directories

Generating Configuration files

...

Starting IIS

Upon completion you should see:

Deployment successful

應用程序中心集羣

  1. 在命令提示符上輸入:

fms.exe deploy RemoteMachine=MachineX Path=c:\FMStocks7_GAM Components=GAM RemoteUser=MachineX\jdoe RemotePassword=password Cluster=nnn.nnn.nnn.nnn

注意:僅當在集羣上部署時,纔會使用集羣參數。MachineX 必須做爲集羣控制器。該一過程會將應用程序的 GAM 安裝到應用程序中心集羣上。

  1. 請驗證應用中心是否在應用管理控制檯成功部署。在輸入上述命令後,將看到如下操做:

Stopping IIS

Creating Directories

Generating Configuration files

...

Starting IIS

Upon completion you should see:

Deployment successful

或者,你能夠添加如下命令行以複製程序中心集羣中的 Web 主機,正如前面的圖像所示:

fms.exe replicate

提示:在實際狀況中,你可能但願經過其餘方式自動化 Web 主機複製過程。例如,一個彈出對話框詢問是否須要複製,或者使用管理控制檯的管理單元。

  1. 啓動應用程序並查看其版本號頁面,驗證安裝是否成功。版本頁面會顯示安裝了BLL、DAL 和 GAM 的主機名稱。其中 GSM 應該安裝在 MachineX 上。

安全要求

Fitch 和 Mather 示例必須安裝在具備本地安全策略組 FullTrust 權限的的位置。本地驅動屬於具備 FullTrust 權限的「Zone-MyComputer」安全策略組,而網絡共享和映射網絡驅動器則屬於具備 LocalIntranet 權限的「Zone – Intranet」安全策略組。所以,若是你將示例安裝到網絡共享或者網絡驅動器下,就必須給相應位置授予 FullTrust 權限。

  1. 右擊桌面上的IE瀏覽器圖標,在快捷菜單中選擇「屬性( Properties)」。

  2. 選擇「安全(Security)」標籤。

  3. 將網絡共享或映射網絡驅動器添加到設備可信站點。
    注意:可信站點屬於「Zone–Trusted」安全策略組。默認狀況下,該策略組具備 Internet 權限而非 FullTrust 權限。

  4. 打開命令提示符並經過如下命令授予可信站點 FullTrust 權限:caspol -chggroup 1.5 FullTrust

OneAPM 助您輕鬆鎖定 .NET 應用性能瓶頸,經過強大的 Trace 記錄逐層分析,直至鎖定行級問題代碼。以用戶角度展現系統響應速度,以地域和瀏覽器維度統計用戶使用狀況。想閱讀更多技術文章,請訪問 OneAPM 官方博客

相關文章
相關標籤/搜索