自訂 Proxy 技術範例
本主題專門說明一項為了在現有應用程式中提供回溯相容性而保留的舊有技術,不建議用於新的開發工作。分散式應用程式應使用 Windows Communication Foundation (WCF) 進行開發。
本範例會示範 RealProxy 類別的擴充性。擴充 RealProxy 後,使用者程式碼即可存取往返於任何遠端物件的訊息。本範例會建立三個可執行檔。ProxyWithReturnMessage.exe 應用程式會覆寫 Invoke 方法來顯示訊息資料。ProxyWithCustomCasting.exe 應用程式會使用 IFaq 和 IBaz 兩個介面,示範自訂轉型 (Casting) 的能力。ProxyWiredToHttpChannel.exe 應用程式會顯示如何使用 Http 通道攔截呼叫,並將其轉送至 RemotingHello 服務。
注意: |
---|
這個範例會要求您的電腦安裝 Internet Information Services (IIS)。在執行範例應用程式之前,必須先向 IIS 註冊 RemotingHello 服務。 |
若要使用命令提示字元建置範例
開啟 [命令提示字元] 視窗,巡覽至 [CS] 子目錄。
在命令列中輸入 msbuild CustomProxiesCS.sln。
注意: 這個範例會建置三個主控台應用程式 (Console Application)。您必須使用命令提示字元啟動及執行這些應用程式,才能檢視這三個應用程式的輸出。
若要使用 Visual Studio 建置範例
開啟 [Windows 檔案總管],巡覽至 CS 子目錄。
按兩下 [CustomProxiesCS.sln] 的圖示,在 Visual Studio 中開啟這個檔案。
在 [建置] 功能表上,選擇 [建置方案]。
若要在 IIS 中註冊這項服務
將服務編譯為 DLL,並將這個 DLL 複製到載入服務的 bin 目錄。以上述方式使用命令提示字元或 Visual Studio 建置範例的動作,將會編譯服務、在 ProxyWiredToHttpChannel 下建立 bin 子目錄,並將 Hello.dll 複製到該處。
啟動 [網際網路服務管理員],然後在伺服器節點下選取 [預設網站]。從功能表上選取 [動作]、[新增]、虛擬目錄],然後按一下 [下一步] 繼續。
輸入 RemotingHello 做為別名 (Alias),然後按 [下一步]。
輸入該服務所在的目錄。請輸入完整路徑,一直到 (但不包括) 在步驟 1 中做為 DLL 複製目的地的 bin 目錄。
按一下 [下一步]。接受出現的預設值,然後再按一下 [下一步]。按一下 [完成]。現在這項服務已經註冊完成,並且將出現在 [網際網路服務管理員] 視窗中的 [預設網站] 清單下。
確定該服務註冊的目錄中有 web.config 檔案。這個檔案用於說明這項服務,並且會在用戶端嘗試使用瀏覽器或透過連接埠 80 的 HTTP 通道存取這項服務時自動載入。
若要執行範例
巡覽至內含三個可執行檔之一的目錄:
ProxyWiredToHttpChannel.exe
ProxyWithCustomCasting.exe
ProxyWithReturnMessage.exe
每一個可執行檔都位於與主控台應用程式同名目錄下的 \bin\Debug 子目錄中。
在命令列中輸入可執行檔的名稱。請確定在執行 ProxyWiredToHttpChannel.exe 之前,RemotingHello 服務已經向 IIS 註冊 (如上所述)。
另請參閱
參考
IChannel
IMessage
IRemotingTypeInfo
MarshalByRefObject
OneWayAttribute
RealProxy
System.Collections
System.Runtime.Remoting
System.Runtime.Remoting.Proxies
System.Runtime.Remoting.Messaging
UnmanagedType
概念
其他資源
建置日期:2010-02-13