不改變中間層,如何玩轉 .NET 的遠端處理功能?
原文連結: https://msdn.microsoft.com/enus/library/aa289846(v=vs.71).aspx
Visual Studio .NET 2003
該方案展示了傳統系統與託管程式碼的整合方法,以及這些傳統系統如何使用核心 .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。
注意:對於 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 Framework.
- 在 Web 伺服器(點選檢視單個裝置配置方法)上安裝 FMStocks7.MSI 或在應用程式叢集控制器( Application Center Cluster Controller)上安裝 FMStocks7 。
- 開啟命令提示符並更改包含 Fitch 和 Mather 示例的目錄。預設目錄為:\machinename[安裝了Visual Studio .NET的驅動盤]:\Program Files\Microsoft Visual Studio .NET 2003\Enterprise Samples\FMStocks7。
- 至此,可以在單個伺服器或整個應用程式中心叢集上安裝 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 ``` 應用程式中心叢集
a. 在命令提示符上輸入:
fms.exe deploy RemoteMachine=MachineX Path=c:\FMStocks7_GAM Components=GAM RemoteUser=MachineX\jdoe RemotePassword=password Cluster=nnn.nnn.nnn.nnn
注意:僅當在叢集上部署時,才會使用叢集引數。MachineX 必須作為叢集控制器。該一過程會將應用程式的 GAM 安裝到應用程式中心叢集上。
b. 請驗證應用中心是否在應用管理控制檯成功部署。在輸入上述命令後,將看到以下操作: ``` Stopping IIS
Creating Directories
Generating Configuration files
...
Starting IIS
Upon completion you should see:
Deployment successful
或者,你可以新增以下命令列以複製程式中心叢集中的 Web 主機,正如前面的影像所示:
fms.exe replicate
```
提示:在實際情況中,你可能希望通過其他方式自動化 Web 主機複製過程。例如,一個彈出對話方塊詢問是否需要複製,或者使用管理控制檯的管理單元。
c. 啟動應用程式並檢視其版本號頁面,驗證安裝是否成功。版本頁面會顯示安裝了BLL、DAL 和 GAM 的主機名稱。其中 GSM 應該安裝在 MachineX 上。
安全要求
Fitch 和 Mather 示例必須安裝在具有本地安全策略組 FullTrust 許可權的的位置。本地驅動屬於具有 FullTrust 許可權的「Zone-MyComputer」安全策略組,而網路共享和對映網路驅動器則屬於具有 LocalIntranet 許可權的「Zone – Intranet」安全策略組。因此,如果你將示例安裝到網路共享或者網路驅動器下,就必須給相應位置授予 FullTrust 許可權。
- 右擊桌面上的IE瀏覽器圖示,在快捷選單中選擇「屬性( Properties)」。
- 選擇「安全(Security)」標籤。
- 將網路共享或對映網路驅動器新增到裝置可信站點。 注意:可信站點屬於「Zone–Trusted」安全策略組。預設情況下,該策略組具有 Internet 許可權而非 FullTrust 許可權。
- 開啟命令提示符並通過以下命令授予可信站點 FullTrust 許可權:caspol -chggroup 1.5 FullTrust
OneAPM 助您輕鬆鎖定 .NET 應用效能瓶頸,通過強大的 Trace 記錄逐層分析,直至鎖定行級問題程式碼。以使用者角度展示系統響應速度,以地域和瀏覽器維度統計使用者使用情況。想閱讀更多技術文章,請訪問 OneAPM 官方部落格。
相關文章
- ASP.Net中的時間處理ASP.NET
- 遠端桌面的處理
- 進銷存軟體之OO設計--中間層處理(二) (轉)
- 紡織印染汙水處理中PLC遠端監控如何實現?
- 三層switch轉一層switch的處理方法
- XP空間遠端桌面中的“雕蟲小技”(轉)
- 如何玩轉andriod遠控(androrat)
- 教你玩轉Git-提取遠端倉庫Git
- 遠端培訓播放問題處理
- 如何在 .NET Core WebApi 中處理 MultipartFormDataContentWebAPIORM
- MQTT雲臺如何助力分散式農村汙水處理的遠端管理MQQT分散式
- ASP.NET MVC中Area分層模組處理大解密ASP.NETMVC解密
- 如何在 .NET Core WebApi 中處理 MultipartFormDataContent 中的檔案WebAPIORM
- Rdo遠端桌面軟體,Rdo遠端桌面軟體的作用,批次處理伺服器該如何進行伺服器
- 如何處理手機端和 PC 端跳轉不同頁面
- 如何遠端獲取汙水處理裝置資料並進行遠端程式設計除錯程式設計除錯
- 教你玩轉Git-刪除遠端倉庫Git
- Java中對時間的處理Java
- 遠端控制調變解調器 (轉)
- 如果呼叫遠端遠端url介面為https,且存在客戶端證書驗證,如何在客戶端處理HTTP客戶端
- 從零玩轉jQuery-文件處理jQuery
- 【譯】如何用 TypeScript 玩轉後端?TypeScript後端
- js中那些方法不改變原來的陣列物件JS陣列物件
- 關於批處理中的變數變數
- Tomcat如何使用執行緒池處理遠端併發請求Tomcat執行緒
- 網路傳輸時間和客戶端處理時間的界定(批處理應用)客戶端
- 修改windows遠端桌面連線埠-批處理Windows
- 遠端連線錯誤程式碼及處理
- Swift使用SDWebImage處理遠端圖片資源SwiftWeb
- Java8中的時間處理Java
- 如何在Kubernetes部署期間正確處理DB模式模式
- 數字轉時間間隔格式處理
- ChannelHandler之間處理資料格式轉換與Netty自帶的ChannelhandlerNetty
- 遠端telnet登入進linux(轉)Linux
- Steam推出遠端同樂功能 與好友線上玩本地多人遊戲遊戲
- win10遠端桌面連線卡如何解決_windows10遠端連線桌面很卡怎麼處理Win10Windows
- 如何批量實現遠端視訊監控?不改路由設定、一次操作全部搞定!路由
- 在工業汙水處理中實現施耐德PLC的遠端監控和上下載