成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

WCF自宿主管理進程聲明周期

開發 開發工具
WCF自宿主作為一個提供和管理進程的生命周期時使用的技術名詞,在實際開發中占據著非常重要的地位。在這里將會針對此做一個詳細介紹。

WCF中的宿主是一個非常重要的內容。對于初學者來說,可能對此的理解掌握并不是太容易。我們將會在這篇文章中通過低WCF自宿主的解讀,來讓大家進一步的對WCF宿主的內容有一個深入了解。#t#

WCF自宿主是當開發者負責提供和管理宿主進程的生命周期時使用的技術名詞。自宿主被應用在位于客戶端和服務之間的一個進程(或計算機)邊界環境中,以及當使用進程中服務的情況下(也就是說,與客戶端處于相同的進程中)。你需要提供的進程可能是任何Windows進程,例如,一個Windows表單應用程序,一個控制臺應用程序或一個Windows NT服務。注意,該進程必須在客戶端調用服務之前先運行起來;典型情況下,這意味著,你必須預先啟動它。對于NT進程中服務來說這并不是一個問題。

類似于IIS宿主,WCF自宿主應用程序配置文件必須列出你想宿主的服務的類型并且暴露給外界。而且,該宿主進程必須在運行時刻顯式地注冊服務類型并且打開該宿主以便于客戶端調用。典型地,這是在Main()方法中使用如下定義的助理類ServiceHost實現的:

 

  1. public interface ICommunicationObject : IDisposable  
  2. {  
  3. void Open();  
  4. void Close();  
  5. //更多成員  
  6. }  
  7. public abstract class CommunicationObject :   
  8. ICommunicationObject  
  9. {...}  
  10. public class ServiceHostBase : CommunicationObject,...  
  11. {...}  
  12. public class ServiceHost : ServiceHostBase,...  
  13. {  
  14. public ServiceHost(Type serviceType,  
  15. params Uri[]baseAddresses);  
  16. //更多成員  

 

提供給ServiceHost的構造函數的信息有:服務類型和(可選)默認的基地址。該基地址集可以是一個空集(以后,你可以配置不同的基地址)。擁有一組基地址能夠使服務接受在多個地址和協議上的調用。注意,每個ServiceHost實例都關聯與一個特定的服務類型,并且如果宿主進程需要宿主多個類型的服務的話,你需要一些匹配的ServiceHost實例。通過調用宿主中的ServiceHost.Open()方法,你允許調入(call- in);并且通過調用ServiceHost.Close()方法,你可以體面地退出宿主實例并完成到當前客戶端的數據發送,并且還要拒絕未來的客戶端調用-即使宿主進程仍在運行中。典型地,關閉操作是在宿主進程關閉時實現的。例如,為了把這個服務宿主在一個Windows表單應用程序中:

 

  1. [ServiceContract]  
  2. interface IMyContract  
  3. {...}  
  4. class MyService : IMyContract  
  5. {...}  
  6. 你可以編寫:  
  7. public static void Main()  
  8. {  
  9. Uri baseAddress = new Uri("http://localhost:8000/");  
  10. ServiceHost serviceHost;  
  11. serviceHost = new ServiceHost(typeof(MyService),baseAddress);  
  12. serviceHost.Open();  
  13. //能夠攔截調用:  
  14. Application.Run(new MyForm());  
  15. serviceHost.Close();  

 

注意,你可以在調用ServiceHost.Open()之后攔截調用,因為該宿主接收在工作者線程上的所有調用。對ServiceHost.Open()的調用將加載WCF運行時刻并且支持接收客戶端調用。該宿主能注冊多個基地址,只要它們至少在傳輸方面存在不同:

 

  1. Uri tcpBaseAddress = new Uri("net.tcp://localhost:8001/");  
  2. Uri httpBaseAddress = new Uri("http://localhost:8002/");  
  3. ServiceHost serviceHost = new ServiceHost(typeof(MyService),
    tcpBaseAddress,httpBaseAddress);  

 

通過從"Add New Item"對話框中選擇WCF服務,Visual Studio 2005允許你把一個WCF服務添加到任何應用程序工程。以此方式添加的服務當然是進程中服務(相對于宿主進程來說),但是也可以由外部客戶端存取。

以上就是對WCF自宿主的全部介紹。

責任編輯:曹凱 來源: CSDN
相關推薦

2009-11-06 15:41:25

WCF自托管宿主

2009-12-21 17:05:59

WCF自托管宿主

2009-11-05 11:12:21

WCF自宿主

2009-11-05 11:23:08

WCF宿主

2010-02-22 16:09:33

WCF宿主

2010-03-02 14:30:41

WCF宿主模式

2010-02-24 17:17:04

WCF宿主環境

2009-11-06 16:22:35

WCF協定

2010-02-22 16:19:25

WCF自托管

2010-02-25 18:04:02

WCF IIS宿主

2009-11-06 15:47:17

WCF Windows

2009-11-05 14:13:33

WCF自承載

2009-12-22 19:06:51

WCF自承載

2009-12-22 10:05:54

WCF編程生命周期

2010-02-26 08:59:10

WCF服務宿主程序

2023-10-31 21:03:49

宿主機管理云開發

2009-07-06 13:49:29

2010-02-24 09:18:49

WCF Adapter

2019-11-07 13:36:06

CIOIT主管工具

2018-03-13 07:11:45

數據中心自主管理數據中心IT
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91高清视频在线观看 | 久久久涩 | 国产午夜亚洲精品不卡 | 久久国产精品一区二区 | av日韩一区 | 日韩在线不卡 | 久久福利电影 | 久久久久久久综合色一本 | 亚洲激情视频在线 | 天堂亚洲网 | 天堂亚洲| 黑人精品 | 少妇精品久久久久久久久久 | 热久久性 | 国产这里只有精品 | 国产精品色婷婷久久58 | 久久亚洲春色中文字幕久久久 | 久久国产成人精品国产成人亚洲 | www精品| xnxx 日本免费 | 亚洲一卡二卡 | 国产成人a亚洲精品 | 精品免费国产一区二区三区四区介绍 | 婷婷色在线 | 久久国产精品久久国产精品 | 日韩羞羞 | 亚洲精品资源 | 日操夜操 | 国产精品日日摸夜夜添夜夜av | a级大片免费观看 | 天天射影院 | 日本三级网站在线 | 亚洲视频在线观看免费 | 国产在线高清 | 国产福利久久 | 欧美中文字幕一区二区三区亚洲 | 99热首页| 蜜桃黄网 | 国产精品精品久久久 | 中文字幕 国产精品 | 在线亚洲免费视频 |