日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Sharepoin学习笔记—架构系列--04 Sharepoint的四种执行模型 1

發(fā)布時間:2023/12/10 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Sharepoin学习笔记—架构系列--04 Sharepoint的四种执行模型 1 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Sharepoint210有四種執(zhí)行模型

1、完全信任執(zhí)行模型(Full Trust)

2、Bin/CAS 執(zhí)行模型 (1與2都屬于場解決方案)

3、沙盒執(zhí)行模型(Sand Box)

4、 混合執(zhí)行方法 (Hybrid Approach)

下面分別來看看它們是怎么回事

一、場解決方案

??? 場解決方案是在 SharePoint 環(huán)境中通過服務器端文件系統(tǒng)部署的資源的集合。這些資源可能包含 Microsoft .NET Framework 程序集以及網(wǎng)頁、圖像和配置文件等非編譯組件。在 SharePoint 2010 中的沙盒解決方案庫出現(xiàn)之前,場解決方案方法是唯一可將自定義功能部署到 SharePoint 環(huán)境的方法。

??? 通常,場解決方案打包為 SharePoint 解決方案包 (WSP) 文件,其中包含程序集、其他未編譯組件和 XML 清單文件(這些未編譯的文件存放在目錄%ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\的相關(guān)子目錄下)。服務器場管理員使用 Windows PowerShell?、STSADM 命令行工具或 SharePoint 管理中心網(wǎng)站將解決方案包安裝到服務器環(huán)境中。安裝解決方案包之后,場管理員可以將該解決方案激活到一個特定 Web 應用程序(或多個 Web 應用程序,如果使用完全信任模型)。

???? 您可以將場解決方案配置為使用完全信任執(zhí)行模型(Full Trust)或 Bin/CAS 執(zhí)行模型。

???? 如果使用完全信任方式,解決方案包將程序集部署到每個 Web 服務器上的全局程序集緩存(GAC )。

???? 如果使用 Bin /CAS 方式,解決方案包將程序集部署到每個 Web 服務器上 Internet Information Services (IIS) 文件結(jié)構(gòu)中特定 Web 應用程序的 Bin 文件夾中。

???? 在這兩種情況下,解決方案包可以將其他組件(如資源文件、ASCX 用戶控件和 ASPX 網(wǎng)頁)部署到每個 Web 服務器上的 SharePoint 目錄結(jié)構(gòu)中(通常稱為"SharePoint 根目錄")。

1、完全信任執(zhí)行(Full Trust)模型的原理

??? 有關(guān)完全信任場解決方案執(zhí)行方式的準確詳細信息會因所部署的 SharePoint 組件的類型而略微有所不同。

??? 例如,Web 部件(Web Part)程序集和大多數(shù)事件接收器(Event Receiver)都由一個 IIS 工作進程 (W3wp) 加載,而計時器作業(yè)由 SharePoint 計時器作業(yè)進程 (Owstimer.exe) 加載。但是,概念大體上是相同的(盡管計時器 進程通常在權(quán)限級別比 IIS 工作進程更高的帳戶下運行)。在本例中,假設(shè)您部署了一個 Web 部件。對該 Web 部件邏輯的調(diào)用請求將定向到用于管理與該請求關(guān)聯(lián)的 Web 應用程序的 IIS 工作進程。該 IIS 工作進程從全局程序集緩存加載相應的程序集。因為程序集位于全局程序集緩存中,不受代碼訪問安全 (CAS) 策略的限制,所以,它可以不受限制地訪問 SharePoint 對象模型,也可以從該工作進程訪問的任何其他 API。該程序集還可以訪問遠程資源,如數(shù)據(jù)庫、Web 服務和 Windows Communication Foundation (WCF) 服務。

??? 下圖 顯示了完全信任執(zhí)行方式(Full Trust)的各個組件。

?

2、Bin/CAS 執(zhí)行模型的原理

??? 如果使用Bin/CAS 執(zhí)行模型部署場解決方案,程序集將添加到 SharePoint Web 應用程序的 IIS 文件結(jié)構(gòu)中的 Bin文件夾中。因此,程序集只能通過與該 Web 應用程序關(guān)聯(lián)的 IIS 工作進程(W3WP)加載(這與完全信任執(zhí)行模型不同,在該模型中,通過全局程序集緩存部署的程序集可由任何進程加載)。由于有這種差異,不能使用 Bin/CAS 解決方案部署各種 SharePoint 組件,如計時器作業(yè)、事件接收器、服務應用程序和工作流,這些都需要將程序集提供給其他進程使用。

??? 代碼的調(diào)用請求將定向到運行與該請求關(guān)聯(lián)的 Web 應用程序的 IIS 工作進程(W3WP)。IIS 工作進程從 IIS 文件系統(tǒng)中 Web 應用程序的 Bin 文件夾加載相應程序集。因為程序集位于 Bin文件夾中,所以將受該 Web 應用程序的配置文件中定義的代碼訪問安全策略(CAS)的限制。這些策略定義程序集可以使用 SharePoint 對象模型以及其他 API、數(shù)據(jù)庫和服務的程度。

? 下圖 顯示了 Bin/CAS 執(zhí)行模型的各個組件。

3、完全信任執(zhí)行(Full Trust)模型與Bin/CAS 執(zhí)行模型的比較

??? 完全信任場解決方案在功能或范圍方面沒有限制。您可以通過完全信任解決方案部署所有類型的 SharePoint 組件,可以將組件提供給服務器場內(nèi)的網(wǎng)站集使用。

??? Bin/CAS 解決方案具有更多限制。范圍將限于目標 Web 應用程序,功能受應用于 Web 應用程序的代碼訪問安全策略的約束。Bin/CAS 解決方案也不適用于計時器作業(yè)、事件接收器、服務應用程序和工作流的部署,因為這些組件需要將程序集部署到全局程序集緩存。換言之,Bin/CAS 方法僅適用于由 IIS 工作進程 (W3wp.exe) 加載的組件(如 Web 部件程序集),因為只有 IIS 工作進程才能訪問 Bin 文件夾。在某些情況下,開發(fā)人員使用混合方法將?? Web 部件程序集部署到 Bin 文件夾,將其他程序集部署到全局程序集緩存,在全局程序集緩存中,程序集可由任意進程加載,CAS 策略不適用。

  • 進程和機制。完全信任解決方案通過宿主進程的權(quán)限集運行,而 Bin/CAS 解決方案受 Web.config 指定的 CAS 策略的約束。
  • 功能。完全信任解決方案在功能方面不受限制。您不能使用 Bin/CAS 解決方案部署計時器作業(yè)、事件接收器、服務應用程序或工作流,因為這些組件需要將程序集部署到全局程序集緩存。
  • 核心問題。場解決方案無法部署到每個 SharePoint 環(huán)境,托管或集中管理的環(huán)境尤其如此。在開發(fā)第三方組件時,這是一個重要問題,因為創(chuàng)建場解決方案會限制可使用您的組件的方案的數(shù)量。場解決方案不受監(jiān)視或資源的限制,必須注意確保解決方案不會影響更大范圍的 SharePoint 環(huán)境中的穩(wěn)定性或安全性。

????? 此處需要強調(diào)的是微軟不再建議使用 Bin/CAS 模型方法,只有當完全信任的場方案與沙盒解決方案都不能滿足你的要求時,才考慮采用Bin/CAS 模型方法,也即把它當成最后不得已的選項。

二、沙盒解決方案

???? 與任何 ASP.NET 應用程序一樣,場解決方案在 IIS 工作進程中運行,而沙盒解決方案卻在具有特殊限制的執(zhí)行環(huán)境中運行。這對于阻止未授權(quán)或性能不佳的代碼減慢應用程序池的速度或?qū)е聭贸绦虺匕l(fā)生崩潰很重要。因此,SharePoint 將對可在沙盒解決方案中執(zhí)行的代碼施加限制。作為此系統(tǒng)的實現(xiàn)的關(guān)鍵部分,沙盒解決方案必須在特殊沙盒工作進程 (SPUCWorkerProcess.exe) 中運行。

?? ? 當請求嘗試訪問沙盒解決方案時,IIS 工作進程中運行的 SharePoint 執(zhí)行管理器將查找沙盒解決方案的代碼將在其中運行的沙盒工作進程(如果未運行任何沙盒工作進程,則啟動一個沙盒工作進程)。一般而言,可在運行 SharePoint Foundation 沙盒代碼服務 (SPUCHostService.exe) 的服務器場中的任何服務器上啟動此沙盒工作進程。在 Windows"服務"對話框中,它稱作"SharePoint 2010 用戶代碼主機"服務。

???? 運行 SharePoint Foundation 沙盒代碼服務的服務器可以是(但并不一定是)運行 IIS 工作進程的前端 Web 服務器。可在管理中心應用程序內(nèi)配置要使用的服務器:管理員可選擇在"本地模式"中運行每個沙盒進程,這意味著 將在運行 IIS 工作進程的同一前端 Web 服務器上處理對沙盒解決方案的每個請求;或者,管理員可讓執(zhí)行管理器在"遠程模式"(有時稱作"相似性模式")中啟動每個沙盒進程。在后一種模式中,執(zhí)行管理器將查找運行 SharePoint Foundation 沙盒代碼服務的服務器,該服務器已在其 SPUCWorkerProcess.exe 進程內(nèi)為相同的沙盒解決方案創(chuàng)建了一個應用程序域。(如果其他網(wǎng)站集的另一個用戶之前已請求該相同的沙盒解決方案,則將出現(xiàn)此情況)。如果存在一個匹配的應用程序域,則會將請求發(fā)送到相同的應用程序域以進行處理。如果運行 SharePoint Foundation 沙盒代碼服務的任何服務器都不具有沙盒解決方案的應用程序域,則執(zhí)行管理器會將請求分配給這些服務器中最閑的服務器。之后,該服務器將創(chuàng)建所需的應用程序域并處理對沙盒解決方案的請求。不管使用的是"本地模式"還是"相似性模式",沙盒工作進程中的應用程序域都將在處理完請求后保持活動狀態(tài),且如果存在對相同沙盒解決方案的其他請求,則將重用該應用程序域。

???? 由給定服務器處理的所有沙盒解決方案都在相同的沙盒工作進程中運行。每個沙盒解決方案會在常規(guī)進程中獲取其自己的應用程序域。SharePoint Foundation 沙盒代碼服務在服務器場帳戶下運行。

???? 當?shù)谝淮卧L問沙盒方案時(例如:某個用戶訪問某個頁面,這個頁面上包含有以沙盒方案定義的Web Part),此沙盒方案所在的程序集就會被解包,然后被拷貝到負責處理此沙盒方案的服務器的文件系統(tǒng)中去,默認的文件系統(tǒng)目錄是 C:\ProgramData\Microsoft\Sharepoint\UCCache. 此目錄所在位置是可以通過配置文件進行修改的。需要注意的,這個拷貝過程不是由運行沙盒方案的工作進程來完成的,因為此工作進程并沒有權(quán)限操作文件系統(tǒng),因此,這個拷貝過程是由User Code Host Service來完成的。此目錄如下圖:

???? 沙盒的程序集并不會在UCCache中一直停留,當用戶訪問沙盒方案的程序集所相關(guān)的Session結(jié)束時,此程序集會在UCCache中再保留很短的時間,如果有另一個請求來到,它就會被再次加載。如果最終再沒有哪個請求來訪問它了,系統(tǒng)將會基于某種算法(服務器是否繁忙、上次訪問已經(jīng)結(jié)束多長時間了)來決定這個程序集是否從UCCache中移除。如果在移除后又有用戶訪問此沙盒方案,于是又重新前面的操作過程,即解包,拷貝與運行……...。

需要說明的是:不管是管理員,還是開發(fā)人員或者是第三方代碼都無權(quán)對UCCache進行任何操作(添加、移除或加載),只有Sharepoint的基礎(chǔ)架構(gòu)自身才有權(quán)來對UCCache進行訪問與操作。

總結(jié)

以上是生活随笔為你收集整理的Sharepoin学习笔记—架构系列--04 Sharepoint的四种执行模型 1的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。