WSS3.0技術內幕-----SharePoint體系結構(1)(翻譯)

SharePoint體系結構

IISASP.NET入門

本章探討了如何WSSMicrosoft Internet信息服務(IIS)和ASP.NET集成的核心架構細節。我們將首先看一下的基本概念和與IISASP.NET使用的一些術語。然後我們將介紹如何WSS小組在IIS上設計並實施了WSS 3.0中擴展ASP.NET框架。

 

本章的主要目標是爲您瞭解Web應用程序的內部工作以及如何初始化WSS的運行環境。正如您將會看到,WSS的團隊已經擴展了許多ASP.NET標準組件,豐富了其內部的功能,作爲WSS中的組件進行使用。

 

在本章結束時,我們將介紹應用程序頁,並討論應用程序頁面成爲WSS的體系結構的基本方面。我們還將走過創造您自己的自定義解決方案,並編寫應用程序頁面底層的代碼,訪問WSS的對象模型的過程。

 

IIS Web站點和虛擬目錄

WSSASP.NETIIS 6.0中依靠供應基本監聽機制來處理傳入的HTTP請求,並提供啓動和運行Web服務器上的工作進程管理的基礎設施。您瞭解如何在各種因素相互組合應該從一個IIS Web站點和虛擬目錄的基本概念開始。

 

一個IIS Web站點提供到IIS Web服務器基礎設施的一個切入點。每個IIS Web站點配置爲偵聽和處理傳入的HTTP請求符合特定標準。例如,IIS網站可以被配置來處理請求在一個特定的IP地址或端口號,也可以改爲使用諸如http://Extranet.Litwareinc.com一個特定的主機頭,路由到Web服務器。

 

IIS自動創建並配置了IIS Web站點命名的默認網站,爲未來通過端口的80偵聽HTTP請求的地址在本地Web服務器的支持。也可以創建和配置其他IIS網站通過使用IIS管理工具的網站。

 

每個IIS網站定義一個特定的URL空間。例如,標準的定義默認Web站點的URL空間來處理的任何傳入請求的URL映射到以下方式:http://www.Litwareinc.com/ *. 你可以想像,一個無限數量的網址可以創建在這個網址的空間。 IIS處理針對他們的路由默認Web站點到這些網址的一個傳入的請求。

 

每個IIS Web站點配置爲映射到一個根目錄,這是對託管的Web服務器的文件系統的物理目錄。例如,標準配置爲IIS映射默認Web站點的根目錄位於C/ Inetpub / wwwroot文件。在最簡單的路由情況下,IIS傳入的HTTP請求映射到根目錄內的物理文件。例如,IIS將響應請求爲http://www.Litwareinc.com/page1.htm通過簡單地載入了位於c文件內容:/ Inetpub / wwwroot文件/ page1.htm到內存和流回客戶端。

 

其中一個IIS Web站點的一個重要方面是,它控制是否需要驗證傳入的請求,如果有,哪些身份驗證協議使用。例如,默認Web站點可能是打算作爲面向公衆的互聯網用戶的Web站點。因此,它可能被配置爲允許匿名訪問,並支持基本身份驗證。輔助IIS網站打算專門爲員工在公司內使用局域網可能被配置爲禁止匿名訪問和支持,而不是基本身份驗證集成Windows身份驗證。

 

除了IIS網站,IIS支持創建和虛擬目錄的配置。虛擬目錄是一個實體,它定義URL空間的兒童在其父母的IIS Web站點的URL空間嵌套。就像一個IIS Web站點,虛擬目錄配置了一份關於託管的Web服務器文件系統的根目錄。 IIS提供的界定在任何地點虛擬目錄的根目錄的靈活性。例如,您可以創建一個有如http://www.Litwareinc.com/Sales URL空間內的默認網站的虛擬目錄。當創建此虛擬目錄,你可以配置爲如C文件系統目錄的根目錄:/ WebApps / Site1

 

IIS提供了一個管理工具命名爲Internet信息服務(IIS)管理器“,如圖2-1所示。此實用工具允許你檢查,創建和配置IIS網站和當前計算機虛擬目錄。它可以通過使用啓動快捷方式開始|管理工具| Internet信息服務(IIS)管理器。如果您不是已經熟悉這個工具,你可以啓動它來學習如何用它來檢查和配置IIS網站和虛擬目錄的屬性。

 

 

 

請注意,IIS配置跟蹤有關其IIS網站,並在諸如IIS元數據庫中已知的一個倉庫虛擬目錄的信息。對每個方面的文件系統,結束生命的IIS元數據庫的Web服務器運行IIS。例如,當您創建和配置IIS Web站點使用IIS管理實用程序,IIS的軌道以書面項,以本地IIS元數據庫這些變化。

 

代替使用IIS管理工具,還可以自動創建和配置通過編寫腳本或託管代碼編寫IIS網站和虛擬目錄的過程,程序對IIS的對象模型。這個過程中,通常這樣做時,Web場環境中進行新的網站滾動,因爲相同的IIS元數據庫設置必須在每個前端Web服務器適用於農場。

 

ISAPI擴展和ISAPI過濾器

在最簡單的路由情況下,IIS的簡單地圖傳入的請求,在一個IIS Web站點或虛擬目錄的根目錄的物理文件。但是,IIS還支持Internet服務器應用程序編程接口(ISAPI)編程模型,它提供了更復雜的路由方案的機會。特別是,在ISAPI編程模型,可配置的IIS Web站點或虛擬目錄,以便傳入請求觸發自定義代碼在Web服務器上執行。

 

ISAPI編程模型中,介紹了與IIS的原始版本,並繼續提供爲IIS創建定製組件的最低水平。在ISAPI編程模型組成:兩個主要組件類型ISAPI擴展和ISAPI過濾器。

 

ISAPI擴展是一個組件的DLL了一個進入的請求端點的作用。基本概念是,IIS可以將傳入的請求映射到一個端點觸發的代碼在一個ISAPI擴展DLL執行。 ISAPI擴展DLL必須在Web服務器上安裝和配置在任何一個IIS Web站點或虛擬目錄的水平。配置通常涉及通過使用一個IIS應用程序映射的ISAPI擴展特定文件擴展名。

 

雖然ISAPI擴展爲端點,一個ISAPI篩選器服務扮演一個攔截器的作用。一個ISAPI過濾器安裝並在IIS Web站點級別配置。一旦安裝,一個ISAPI篩選器攔截所有針對的IIS Web站點的傳入請求。基本概念是一個ISAPI篩選器可以提供前處理和後每一個傳入的請求處理。 ISAPI過濾器通常創建爲一個IIS Web站點,如自定義身份驗證,並要求記錄,低級別的功能。

 

自定義的ISAPI組件的發展並不是很受歡迎的原因主要有以下幾個。首先,自定義ISAPI組件很難設計,開發和調試,因爲他們必須在託管C + +編寫,需要複雜的編碼,例如線程同步技術。大多數開發人員的工作水平以上的ISAPI和利用,如ASPASP.NET框架。雖然您可能永遠不會被要求寫一個ISAPI組件,但是對於理解如何把ISAPI組件適合場景中是相當重要的。

 

應用程序池和IIS工作進程

IIS提供了一個被應用程序池使用的管理IIS工作進行的靈活的基礎架構。應用程序池是一個可配置的實體,允許您控制IIS如何映射IIS網站,並在IIS工作進程情況下的虛擬目錄。請注意,IIS工作進程實例都使用可執行推出名爲程序w3wp.exe,顯示如下:

 

 

IIS的路由體系結構是受一個內核級的設備驅動程序命名Http.sys控制的。該設備驅動程序偵聽傳入的HTTP請求,並使用IIS元數據庫中的信息,以把他們的任何實例的程序w3wp.exe與目標相關的應用程序池。如果Http.sys的確定的目標應用程序池沒有運行的程序w3wp.exe例如,對需求推出新的實例來處理請求。

 

每個IIS網站和虛擬目錄,可以配置爲運行在它自己的獨立的應用程序池。相反,您可以配置許多不同的IIS網站和虛擬目錄中運行同一個應用程序池,以便提高效率。關鍵標準應該是隔離和效率之間的折中。爲了實現更大的隔離意味着你必須運行多個實例程序w3wp.exe,這會影響效率。爲了實現更高的效率意味着你必須映射多個IIS網站和虛擬目錄,以較少的情況下在IIS工作進程,孤立的妥協。

 

衆所周知每一個應用程序池設置具有重要的應用程序池標識。應用程序池標識配置與特定的Windows用戶帳戶或者是在Active Directory目錄服務域上的Web服務器域帳戶火本地帳戶。當Http.sys的推出爲特定應用程序池的程序w3wp.exe的新實例,它使用的應用程序池標識初始化Windows安全令牌的進程令牌服務。這一點很重要,因爲它確立了“運行的”身份代碼運行在IIS工作進程。

 

默認情況下,IIS使用本地網絡服務帳戶的身份當您創建一個新的應用程序池。但是,您可以通過任何其他用戶使用的應用程序池標識帳戶你喜歡。當部署ASP.NETWSS基於Web站點,建議您配置一個域帳戶,而不是網絡服務帳戶的應用程序池標識。這是尤其是在Web場環境中,當你需要同步橫跨多個前端應用程序池。

 

重新啓動應用程序池

當用於ASP.NETWSS開發,你偶爾會發現有必要重新啓動應用程序池所使用的測試代碼。這可能是這樣,當您需要刷新的功能在您正在開發的定義,一個XML文件,或者您可能需要重新加載一個從全局程序集緩存程序集DLL的新版本。你可以重新啓動與運行在命令行下面的命令IIS中所有相關的過程:

 

運行IISRESET或者重新啓動,

 

您可以只用通過運行一個名爲VB腳本宏已是IIS 6.0的,因爲Windows Server 2003Service Pack 1安裝標準的一部分iisapp.vbs特定的應用程序池關聯的進程。您必須通過使用諸如cscript.exe腳本宿主,此腳本。當您調用cscript.exe,然後包括向iisapp.vbs路徑,您可以通過重新啓動一個特定的應用程序池/參數隨着IIS應用程序池名稱。

 

cscript.exe ç/Windows / System32 / iisapp.vbs / 1“默認應用”使用這種技術的主要優點是速度快於全IISRESET命令,這與IIS重新啓動有關的所有過程。使用此命令,而不是一個IISRESET命令可以節省幾秒鐘在這裏和那裏。

 

ASP.NET2.0 Framework

ASP.NET框架代表了上面的IISISAPI編程模型生產率的顯着一層。如果您對ASP.NET開發熟悉,你知道,它提供了有管理的書面語言,如C,你的應用程序邏輯#或Visual BasicNET中的便利,並與所有生產率由Microsoft Visual Studio提供的面向可視化設計工作。 ASP.NET框架還提供很多其他寶貴的抽象協助等領域的國家管理,數據綁定,導航開發人員和數據緩存。

 

ASP.NET框架是作爲一個名爲aspnet_isapi.dllISAPI擴展被實現的。 ASP.NET的基本配置包括註冊爲常見的ASP.NET應用程序文件擴展名包括地圖的。aspx,的。ascx,。ashx的,和。在一個IIS Web站點或虛擬目錄級別asmx文件。當IIS看到的是一個與傳入的請求針對這些擴展一個文件時,它請求轉發到aspnet_isapi.dll的,它有效地越過了ASP.NET框架的控制。的方式在ASP.NET框架的進程要求在很大程度上取決於目標文件的擴展名而定。

 

ASP.NET框架執行每個IIS網站定位的要求,並作爲自己的每一個獨立的ASP.NET應用程序的虛擬目錄。 ASP.NET應用程序背後,都有一個根目錄包含的文件集。這種架構推動部署ASP.NET應用程序非常簡單X -副本樣式。您只需創建一個Web服務器計算機的新的虛擬目錄,並複製到根目錄的ASP.NET應用程序文件。當然,這是一個多一點的,因爲有一個虛擬目錄創建Web場環境沉悶乏味,而文件的複製,必須在每個前端農場Web服務器複製。

 

每個ASP.NET應用程序可以獨立配置,增加了在其根目錄中的Web.config文件。在Web.config文件是一個基於XML的配置元素文件,控制行爲的各種功能的ASP.NET框架,如彙編,頁面呈現,和狀態管理。一個簡單的web.config文件如下:

<configuration>

  <system.web>

    <customErrors mode="On" />

    <httpRuntime maxRequestLength="51200" />

    <authentication mode="Windows" />

    <identity impersonate="true" />

    <authorization>

      <allow users="*" />

    </authorization>

  </system.web>

</configuration>

 

重要的是要注意,ASP.NET框架運行的一定程度的隔離每個ASP.NET應用程序。這是真的,即使在一個情景時,您已設定多個ASP.NET應用程序運行在相同的IIS應用程序池。 ASP.NET框架提供了ASP.NET應用程序之間的隔離內的IIS工作進程運行相同的實例通過加載到一個單獨的.NET框架的AppDomain

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章