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

2021-09-06 02:07:13 字數 1207 閱讀 6562

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

iis7在windows vista和windows server 2008 中存在,程序管理已經實現對多種協議支援並移植到was中。asp.net也擴充套件來支援程序啟用和was中的服務寄宿。

7.4 描述了在was架構上的iis7.

在iis7中寄宿乙個服務的三個最小的步驟在第一章描述了。簡短的說,你必須建立乙個iis虛擬應用,建立乙個svc檔案來定義服務實現,在web.config中新增部分。

7.4 在was中實現iis

在虛擬應用定義好了以後,你必須在虛擬目錄中放置乙個svc檔案和乙個web.config檔案。svc檔案包含了對服務實現的引用而web.config定義了終結點的位址,繫結和契約以及服務的行為。

svc檔案將會在三個地方查詢服務實現: 首先是svc檔案本身,然後是虛擬目錄的/bin資料夾,最後在機器的gac中。svc檔案類似iis6中的asmx檔案。

web.config檔案定義了服務和終結點,wcf的abcs,乙個位址,乙個繫結和乙個契約。因為服務由iis寄宿,而iis只知道http協議(相對於tcp或者msmq),web.config檔案的終結點必須使用乙個繫結將http確定為傳輸協議。三個內建的標準繫結,basichttpbinding,wshttpbinding和wsdualhttpbinding,使用這個傳輸協議,所以這些可以由iis寄宿的服務的終結點使用。如果你定義了乙個使用乙個基於不同傳輸協議的終結點,比如tcp或者msmq(nettcpbinding)當服務收下你啟用時會丟擲乙個執行時異常。位址應該是乙個相對位址因為服務的基位址由協議繫結和svc檔案的虛擬目錄定義了。

讓我們考慮一下當乙個虛擬應用建立後會發生什麼,當第乙個http請求抵達應用以後,順序請求是如何處理的。

當你使用iis管理器建立乙個虛擬應用,虛擬應用的關聯url由iis(w3svc)註冊。在那個點,所有由http協議監聽介面卡接收的請求都被傳送去處理。http協議監聽介面卡是http.sys, 這是乙個系統驅動。監聽介面卡架構在本章節的"在windows 程序啟用管理服務中寄宿乙個服務"部分描述。

WCF 第七章 寄宿 自我寄宿

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

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

將應用程式功能聚集到正確的服務層次是系統設計的乙個必須元素。建立乙個有很多介面的系統,這個系統也會變得很令人迷惑。建立只有很多介面的乙個系統,這個系統會是變成乙個很難改變的整體。在第二章 契約 我們描述了如何將多個類介面整合到乙個單一的終結點中。這是通過.net介面整合完成的。我們也描述了如何在乙個...

c primer第七章類小結 7

第七章 類 c 中定義自己的資料型別叫做類。資料抽象是依賴於具體實現與物件能執行的操作分離開來的一種技術 封裝實現介面和實現分離,類的基本思想是資料抽象和封裝。類的 介面包括使用者所能執行的操作 類的實現包括類的資料成員 負責介面實現的函式體以 及定義類所需的各種私有函式,15章說核心思想是資料抽象...