成人免费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編程生命周期

2023-10-31 21:03:49

宿主機管理云開發

2010-02-26 08:59:10

WCF服務宿主程序

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在线一区二区三区 | 成人午夜精品 | 欧美性生交大片免费 | 成人国产精品 | 精品国产乱码久久久久久丨区2区 | 精品视频在线一区 | www.欧美.com | 99久久国产精 | av黄色免费 | av大片在线 | 欧美11一13sex性hd | av在线天堂| 欧美日日日日bbbbb视频 | 成人在线观看黄 | 日韩欧美一区二区三区免费看 | 久久久999国产精品 中文字幕在线精品 | 久操伊人 | 午夜激情视频 | 中文日韩字幕 | 亚洲欧美在线观看 | 久久久久久亚洲精品不卡 | 亚洲精品在线国产 | 天天色天天色 | 欧美成人激情视频 |