共用方式為


ASP.NET 背景工作處理序

ASP.NET 會在稱為 ASP.NET 背景工作處理序的處理序內執行。所有 ASP.NET 功能都會在此處理序的範圍內執行。

一般 Web 伺服器只包含單一 ASP.NET 背景工作處理序,這點與 Web Farm 及 Web Garden 有所不同:

  • Web Farm 包含多個 ASP.NET 背景工作處理序。

    伺服器群組中的伺服器會各自處理不同的 ASP.NET 背景工作處理序。

  • Web Garden 包含多個 ASP.NET 背景工作處理序。

    SMP 伺服器中的 CPU 會各自處理不同的 ASP.NET 背景工作處理序。

選擇 ASP.NET 背景工作處理序

當 Web 用戶端連接至 Web Farm 或 Web Garden 時,就會在多個 ASP.NET 背景工作處理序中選定一個來執行要求。

  • 在 Web Farm 中,「網路負載平衡」決定 ASP.NET 背景工作處理序的選取。
  • 在 Web Garden 中,是由 ASP.NET 決定選取的 ASP.NET 背景工作處理序。

狀態管理與多個 ASP.NET 背景工作處理序

當從單一 ASP.NET 背景工作處理序 (一般 Web 伺服器) 的案例轉移到多個 ASP.NET 背景工作處理序 (Web Farm 或 Web Garden) 的案例時,就會造成狀態管理的複雜性。

網頁是無狀態的,所以 Web 伺服器必須利用其他方法保存狀態。在 Web 伺服器上管理狀態時所用的一般方法包括「工作階段狀態」和「ASP.NET 快取」。

Note附註

保存性及狀態 (在單一 Web 伺服器內) 的問題會在「我應該使用哪一種保存性方式來搭配 Crystal Reports?」一節中詳細討論。

工作階段和快取都包含在單一 ASP.NET 背景工作處理序的記憶體空間內。但在 Web Farm 或 Web Garden 中,多個 ASP.NET 背景工作處理序會同時進行處理。在任何個別 ASP.NET 背景工作處理序內的工作階段或快取,都無法跨多個處理序來管理狀態。

因此,狀態管理需要使用額外的層級:跨處理序 (Out-Of-Process) 工作階段狀態伺服器,以便儲存及擷取 Web Farm 或 Web Garden 中的每一個 ASP.NET 背景工作處理序的狀態資訊。請參閱「跨處理序工作階段狀態」