一. .NET Remoting 簡(jiǎn)介:
.NET Remoting 從某種意義上講是 DCOM 的替代品。 ASP.NET Web 服務(wù)十分有用,但是這項(xiàng)技術(shù)在企業(yè)內(nèi)聯(lián)網(wǎng)的解決方案中,對(duì)于某些業(yè)務(wù)請(qǐng)求來(lái)說(shuō)并不快,也沒(méi)有足夠的靈活性,而且, ASP.NET Web 服務(wù)需要有運(yùn)行時(shí)的支持。使用 .NET Remoting 技術(shù)后,可以將 Web 服務(wù)提供給世界上的任何地方。而且可以在所有的應(yīng)用程序類(lèi)型中運(yùn)行 Web 服務(wù)。
二. .NET Remoting 的基本原理:
體系結(jié)構(gòu)圖如下:
三.幾個(gè)重要的概念:
1 .遠(yuǎn)程對(duì)象:
遠(yuǎn)程對(duì)象類(lèi)是從 MarshalByRefObject 類(lèi)中派生的??缭綉?yīng)用程序域調(diào)用這個(gè)類(lèi)需要使用代理。 .NET Remoting 支持兩種類(lèi)型的遠(yuǎn)程對(duì)象:知名的( Well-known )遠(yuǎn)程對(duì)象和客戶激活( Client-activated )遠(yuǎn)程對(duì)象。遠(yuǎn)程對(duì)象其實(shí)包括兩層含義:
操作遠(yuǎn)程對(duì)象:對(duì)象運(yùn)行在遠(yuǎn)程,客戶段向他發(fā)送消息;
傳遞遠(yuǎn)程對(duì)象:將遠(yuǎn)程對(duì)象拿到本地,或者將本地對(duì)象發(fā)送過(guò)去,對(duì)副本進(jìn)行操作。
2 .激活:
使用 new 運(yùn)算符可以激活遠(yuǎn)程對(duì)象。還有其它一些方式也可以激活遠(yuǎn)程對(duì)象,在以后的隨筆里面我會(huì)介紹。
3 .通道:
一個(gè)遠(yuǎn)程對(duì)象使用通道發(fā)送和接收消息。服務(wù)器選擇一個(gè)通道來(lái)監(jiān)聽(tīng)請(qǐng)求,客戶端選擇通道來(lái)和服務(wù)器通訊。 Remoting 提供了內(nèi)置的通道: TCP 通道和 HTTP 通道,我們也可以編寫(xiě)自己的通道。
4 .編組:
數(shù)組通過(guò)應(yīng)用程序域被傳遞的過(guò)程稱為編組。將變量作為遠(yuǎn)程對(duì)象的參數(shù)來(lái)發(fā)送時(shí),這個(gè)變量必須被轉(zhuǎn)換,以便能夠通過(guò)應(yīng)用程序域發(fā)送該變量。
5 .監(jiān)聽(tīng):
使用監(jiān)聽(tīng),能夠?qū)⒛承┕δ苤萌氲椒椒ㄕ{(diào)用鏈中。如果調(diào)用某個(gè)對(duì)象的方法,監(jiān)聽(tīng)層便能夠捕獲調(diào)用來(lái)轉(zhuǎn)換方法調(diào)用,或是完成某些日志記錄。 .NET Remoting 調(diào)用鏈的每一部分都是用監(jiān)聽(tīng)。
四.開(kāi)發(fā) Remoting 三步走:
開(kāi)發(fā) .NET Remoting 分三步走,在這里以一個(gè)簡(jiǎn)單的例子來(lái)說(shuō)明。
1 .創(chuàng)建遠(yuǎn)程對(duì)象:
繼承
System.MarshalByRefObject

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

2.創(chuàng)建宿主應(yīng)用程序:
注冊(cè)通道
注冊(cè)服務(wù)器激活的遠(yuǎn)程對(duì)象
運(yùn)行宿主程序

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

3.建立客戶端程序:
注冊(cè)通道
根據(jù) URL 得到對(duì)象代理
使用代理調(diào)用遠(yuǎn)程對(duì)象

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
