欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

初識用.NET Remoting來開發分布式應用

系統 1609 0

一. .NET Remoting 簡介:

.NET Remoting 從某種意義上講是 DCOM 的替代品。 ASP.NET Web 服務十分有用,但是這項技術在企業內聯網的解決方案中,對于某些業務請求來說并不快,也沒有足夠的靈活性,而且, ASP.NET Web 服務需要有運行時的支持。使用 .NET Remoting 技術后,可以將 Web 服務提供給世界上的任何地方。而且可以在所有的應用程序類型中運行 Web 服務。

二. .NET Remoting 的基本原理:

體系結構圖如下:

初識用.NET Remoting來開發分布式應用

三.幾個重要的概念:

1 .遠程對象:

遠程對象類是從 MarshalByRefObject 類中派生的??缭綉贸绦蛴蛘{用這個類需要使用代理。 .NET Remoting 支持兩種類型的遠程對象:知名的( Well-known )遠程對象和客戶激活( Client-activated )遠程對象。遠程對象其實包括兩層含義:

操作遠程對象:對象運行在遠程,客戶段向他發送消息;

傳遞遠程對象:將遠程對象拿到本地,或者將本地對象發送過去,對副本進行操作。

2 .激活:

使用 new 運算符可以激活遠程對象。還有其它一些方式也可以激活遠程對象,在以后的隨筆里面我會介紹。

3 .通道:

一個遠程對象使用通道發送和接收消息。服務器選擇一個通道來監聽請求,客戶端選擇通道來和服務器通訊。 Remoting 提供了內置的通道: TCP 通道和 HTTP 通道,我們也可以編寫自己的通道。

4 .編組:

數組通過應用程序域被傳遞的過程稱為編組。將變量作為遠程對象的參數來發送時,這個變量必須被轉換,以便能夠通過應用程序域發送該變量。

5 .監聽:

使用監聽,能夠將某些功能置入到方法調用鏈中。如果調用某個對象的方法,監聽層便能夠捕獲調用來轉換方法調用,或是完成某些日志記錄。 .NET Remoting 調用鏈的每一部分都是用監聽。

四.開發 Remoting 三步走:

開發 .NET Remoting 分三步走,在這里以一個簡單的例子來說明。

1 .創建遠程對象:

繼承 System.MarshalByRefObject

1 using System;
2 using System.Collections;
3 using System.Text;
4
5 namespace SimpleRemoting
6 {
7 public class HelloServer:MarshalByRefObject
8 {
9 public HelloServer()
10 {
11 /**/ /// 輸出信息,服務器激活
12 Console.WriteLine( " 服務器激活…… " );
13 }

14 public StringHelloMethod(Stringname)
15 {
16 Console.WriteLine(
17 " 服務器端:{0} " ,name);
18 return " 這里是: " + name;
19 }

20 }

21 }


2.創建宿主應用程序:

注冊通道

注冊服務器激活的遠程對象

運行宿主程序

1 using System;
2 using System.Net;
3 using System.Runtime.Remoting;
4 using System.Runtime.Remoting.Channels;
5 using System.Runtime.Remoting.Channels.Tcp;
6 using System.Runtime.Remoting.Channels.Http;
7
8 namespace SimpleRemoting
9 {
10
11 public class Server
12 {
13 public static int Main( string []args)
14 {
15
16 /**/ /// 創建Tcp通道
17 TcpChannelchan1 = new TcpChannel( 8085 );
18
19 /**/ /// 創建Http通道
20 HttpChannelchan2 = new HttpChannel( 8086 );
21
22 /**/ /// 注冊通道
23 ChannelServices.RegisterChannel(chan1);
24 ChannelServices.RegisterChannel(chan2);
25
26 RemotingConfiguration.RegisterWellKnownServiceType
27 (
28 typeof (HelloServer),
29 " SayHello " ,
30 WellKnownObjectMode.Singleton
31 );
32
33
34 System.Console.WriteLine( " 按任意鍵退出! " );
35 /**/ /// 下面這行不能少
36 System.Console.ReadLine();
37 return 0 ;
38 }

39
40 }

41 }

42
43


3.建立客戶端程序:

注冊通道

根據 URL 得到對象代理

使用代理調用遠程對象

1 using System;
2 using System.Runtime.Remoting;
3 using System.Runtime.Remoting.Channels;
4 using System.Runtime.Remoting.Channels.Tcp;
5 using System.Runtime.Remoting.Channels.Http;
6 using System.IO;
7
8 namespace SimpleRemoting
9 {
10 public class Client
11 {
12 public static void Main( string []args)
13 {
14 /**/ /// 使用TCP通道得到遠程對象
15 TcpChannelchan1 = new TcpChannel();
16 ChannelServices.RegisterChannel(chan1);
17
18 HelloServerobj1 = (HelloServer)Activator.GetObject(
19 typeof (SimpleRemoting.HelloServer),
20 " tcp://localhost:8085/SayHello " );
21
22 if (obj1 == null )
23 {
24 System.Console.WriteLine(
25 " 連接TCP服務器失敗 " );
26 }

27
28 /**/ /// 使用HTTP通道得到遠程對象
29 HttpChannelchan2 = new HttpChannel();
30 ChannelServices.RegisterChannel(chan2);
31
32 HelloServerobj2 = (HelloServer)Activator.GetObject(
33 typeof (SimpleRemoting.HelloServer),
34 " http://localhost:8086/SayHello " );
35
36 if (obj2 == null )
37 {
38 System.Console.WriteLine(
39 " 連接HTTP服務器失敗 " );
40 }

41
42 /**/ /// 輸出信息
43 Console.WriteLine(
44 " ClientTCPHelloMethod{0} " ,
45 obj1.HelloMethod( " Caveman1 " ));
46 Console.WriteLine(
47 " ClientHTTPHelloMethod{0} " ,
48 obj2.HelloMethod( " Caveman2 " ));
49 Console.ReadLine();
50 }

51 }

52 }

53

初識用.NET Remoting來開發分布式應用


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。。?/p>

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 色综合国产 | 免费在线毛片 | 午夜影院在线免费观看 | 日韩精品一二三区 | 狠狠躁夜夜躁人人爽天天段 | 久草中文在线 | 欧美一区二区视频 | 日韩有码一区 | 日韩在线精品视频 | 99精品在线 | 九九视频高清视频免费观看 | 狠久久| 中文字幕在线一区 | 亚洲精品无码不卡在线播放he | 久久亚洲最大成人网4438 | 色午夜| 99视频在线观看精品 | 91精品视频免费在线观看 | 成人精品 | 国产区小视频 | 国产福利视频一区二区 | 99热这里只有精品久久免费 | 韩国三级中文字幕hd久久精品 | 欧美日韩国产一区二区三区不卡 | 久久亚洲精品国产亚洲老地址 | 亚洲精品无码成人A片在线虐 | 成人偷拍片视频在线观看 | 免费一级做a爰片性视频 | 91色综合| 最近最新中文字幕 | 久草小视频 | 在线精品自拍亚洲第一区 | 91久久国产精品 | 丝袜美腿视频一区二区三区 | 国产精品亚洲天堂 | 狠狠躁夜夜躁人人爽天天miya | 骚av在线| 国产成久久免费精品AV片天堂 | 亚洲精品久久久久久蜜臀 | 国产精品v欧美精品∨日韩 一级免费黄色免费片 | 成年视频在线观看免费 |