2009-07-10 54 views

回答

2

ServiceHost(無論是直接實例化,還是將其委託給IIS/WAS)都是WCF類的運行時環境 - 畢竟這只是一個簡單的.NET類(它需要在某處運行) 。

ServiceHost基本上提供了圍繞WCF服務的所有「管道」 - 在這些端點上創建端點和監聽器,以偵聽消息並在進入時捕獲這些消息;它提供了整個通道堆棧,從傳輸層到WCF的所有層,再通過反序列化器到調度器,然後決定調用哪個類和哪個類的方法,等等。

在WCF中,在您的服務類中,您只寫出服務的實際業務邏輯 - ServiceHost及其所有類都處理接收消息和發回響應的所有細節。

Marc

1

如果您不使用IIS或Windows激活服務(WAS),ServiceHost類通常用於在獨立應用程序(例如控制檯應用程序)中託管您的WCF服務。

簡而言之,它將處理COM(偵聽特定服務的消息)。

您也可以從ServiceHost派生出來,根據需要添加自定義,並結合專業化的ServiceHostFactory。

請參閱MSDN example

HTH

菲爾

1

它創建一個負責的東西一樣可靠傳輸和安全通道。它偵聽傳入的消息並調用您的操作方法。