1. <strike id="x5xg0"><small id="x5xg0"><ruby id="x5xg0"></ruby></small></strike>
      <code id="x5xg0"></code>

      <code id="x5xg0"></code>

      <del id="x5xg0"><em id="x5xg0"><optgroup id="x5xg0"></optgroup></em></del>

      <th id="x5xg0"></th>
      <object id="x5xg0"><option id="x5xg0"></option></object><strike id="x5xg0"><video id="x5xg0"></video></strike>

      當前位置 主頁 > iis相關 >

        學習asp.net_IIS6.0進程模型

        欄目:iis相關 時間:2018-09-20 14:59

          如果Web服務器操作系統是Windowsserver2003,則IIS6.0進程模型是asp.net的默認選擇。其名稱明確之處,該模型需要IIS6.0、然后,在windows2003的服務器上,仍然可以讓asp.net遵守IIS5.0進程模型的規則?梢酝ㄟ^修改machine.config文件中的<processModel>節,顯示的啟用該模型。
         
          <processModelenable="true">
         
          當然,我并不建議且滑倒IIS5.0進程模型,雖然這樣做是合法的。主要原因在于:IIS6.0利用不同的內部模塊的管道來處理一個入站請求,并且只有在仿真模式下運行時才能模仿IIS5.0的行為。IIS6.0管道以一個名為完wp.exe的工作進程為中心。所有被分配給同一個應用程序池的Web應用程序共享該可執行進程的一個副本。用IIS6.0的行話來說,一個應用程序池是一組共享相同的工作進程的副本的Web用用程序。IIS6.0使我們能夠指定應用程序池,以實現Web服務器上托管的各應用程序所需的隔離程度。
         
          w3wp.exeworker進程加載aspn_isapi.dll;該ISAPI擴展又加載通用語言運行庫(CLR),并啟動ASP.NET運行庫管道來處理該請求。當IIS6.0進程模型正在使用時,內置的ASP.NET工作進程會被禁用。
         
          注意:只有asp.net1.1完全利用IIS6.0進程模型。如果把asp.net1.0安裝到一臺windows2003機器上,則默認的進程模型是IIS5.0進程模型。之所以會這樣,是因為asp.net1.1所帶的aspnet_isapi.dll能夠識別它的宿主,并根據需要加載CLR。asp.net1.0所帶的aspnet_isapi.dll只能把請求轉發給asp.net工作進程,絕對不會加載CLR。
         
          下圖為IIS6.0進程模型
         
          IIS6.0作為內核級模塊實現其HTTP監聽程序。因此,所有的輸入請求首先由http.sys驅動程序以內核模式進行管理。沒有任何的第三方代碼會與該監聽程序交互,并且沒有任何的用戶模式沖突會影響IIS的穩定性。http.sys驅動程序監聽請求,并把他們投遞到合適的應用程序池的請求隊列。一個稱為餓哦Web管理服務的模塊讀取IIS冤苦,并指示http.sys驅動程序創建與元庫中所注冊應用程序池一樣多的請求隊列。
         
          總之,在IIS6.0進程模型下,asp.net運行的更快,因為在inetinfo.exe可執行進程和工作進程之間,不需要任何進程間的通信。http請求直接在托管CLR的工作進程中被交付。此外,asp.net工作進程不是一個特俗進程,它只是IIS工作進程的一個副本。這一事實將進程回收、頁面輸入緩存和運行狀況檢查的負擔(轉交給IIS)。
      縮小 縮小 縮小 縮小
      雅彩彩票登录