WCF 第七章 寄宿 在乙個程序中寄宿多個服務

2021-09-06 02:10:23 字數 999 閱讀 6830

將應用程式功能聚集到正確的服務層次是系統設計的乙個必須元素。建立乙個有很多介面的系統,這個系統也會變得很令人迷惑。建立只有很多介面的乙個系統,這個系統會是變成乙個很難改變的整體。

在第二章」契約」,我們描述了如何將多個類介面整合到乙個單一的終結點中。這是通過.net介面整合完成的。我們也描述了如何在乙個單一服務內部暴露多個終結點。這一部分提供了乙個可供選擇的方案。不是通過將兩個介面合併為乙個然後將聚合作為乙個服務暴露出來,這裡我們描述的是如何在乙個單一的作業系統程序內分別暴露兩個服務。

乙個servicehost 僅暴露乙個服務。所以,為了在乙個作業系統程序內暴露多個服務,你需要實現多個servicehost類。而這正是was做的工作-它為每個服務建立乙個servicehost並通過乙個svc檔案啟用。svc包含了在應用配置檔案(web.config)中描述的終結點的服務名。終結點列出了位址,繫結和契約,所以servicehost有它需要的所有東西來監聽並分發訊息。

列表7.10描述了乙個寄宿兩個服務的控制台應用。goodstockservice的getstockprice方法在返回結果前等待10秒,而greatstockservice的同樣方法立即返回結果。因為服務行為在wcf中配置,這個簡單的程式是多執行緒的,所有當goodstockservice在睡眠時,greatstockservice對請求進行反饋。即便是最慢的服務也是多執行緒的,按照需要分發多個入站訊息給getstockprice例項。

列表7.10 在乙個程序中的多個自我寄宿服務

namespace essentialwcf

}

[servicecontract]

public class greatstockservice

}public class program

}}

列表7.11 在乙個程序內設定多個自我寄宿服務的配置 

<?xml version="1.0" encoding="utf-8" ?>

WCF 第七章 寄宿 自我寄宿

寄宿wcf服務最常用的環境是iis或者was。在乙個公共架構上建立,它們都提供魯棒性程序控制和生命週期 服務,還有乙個熟悉的管理介面。當iis架構已經在使用時這是對大多數場景來說最合適的解決方案。然而,也有一些情況你不想在iis或者was中寄宿乙個服務。你可能想顯式控制事件的啟動和停止。或者你可能想...

WCF 第七章 寄宿 在IIS7中寄宿服務

iis6在windows 2003和windows xp sp2中存在,應用程式池作為乙個執行時容器來寄宿應用程式。這允許對啟動和關閉的控制,在每乙個程序的基礎上進行身份認證和 服務。它原本就提供了跨應用程式的程序隔離功能,這個功能帶來了很大的可信賴性。總的來說程序管理是由應用程式池架構處理的。ii...

第七章 乙個完整搜尋系統中的評分計算

思想 把查詢向量看成是1,1,1,1,這樣的話,計算query和文件d的余弦相似度時,只需要累加文件d的權重即可 思想 1 先找乙個文件集合a 條件是包含很多和前k偏文件得分相近的文件 k a 思想 1 在倒排中查詢字典時,詞項idf值超過一定閥值的文件被留下 小於閥值的文件將忽略掉。自己考慮好處?...