程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

WCF初探

編輯:.NET實例教程
WCF宿主與服務托管若要公開WCF服務,需要提供一個運行服務的宿主環境。就像.Net CLR需要創建宿主環境以托管代碼一般,WCF的宿主環境同樣運行在進程的應用程序域中。在應用程序域中可以創建一個或多個ServiceHost實例,其關系如圖一所示:
Host_ServiceHost.gif 
圖一  托管ServiceHost

WCF並不推薦在應用程序域中創建多個ServiceHost實例。如果要托管多個服務,完全可以在一個宿主中通過多個Endpoint公開多個WCF服務。由於應用程序域對安全進行了隔離,如果需要提供不同的安全上下文,則有必要創建多個ServiceHost實例。

WCF的典型宿主包括以下四種:
1、"Self-Hosting" in a Managed Application(自托管宿主)
2、Managed Windows Services(Windows Services宿主)
3、Internet Information Services(IIS宿主)
4、Windows Process Activation Service(WAS宿主)

以下將通過一個具體的實例分別介紹這幾種宿主的托管方式及其相關的注意事項。在這樣的一個實例中,我們定義了如下的服務契約:
namespace BruceZhang.WCF.DocumentsExplorerServiceContract
{
    [ServiceContract]
    public interface IDocumentsExplorerService
    {
        [OperationContract]
        [FaultContract(typeof(DirectoryNotFoundException))]
        DocumentList FetchDocuments(string homeDir);
        
        [OperationContract]
        Stream TransferDocument(Document document);        
    }    
}

服務的實現則如下所示:
namespace BruceZhang.WCF.DocumentsExplorerServiceImple
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved