設定沙箱化解決方案服務層 (SharePoint Server 2010)

 

適用版本: SharePoint Foundation 2010, SharePoint Server 2010

上次修改主題的時間: 2016-11-30

根據沙箱化解決方案使用之每個要求的平均資源總量,可以在沙箱化解決方案服務中分成數個「層」。一個層包含一或多個工作者處理序,而一個工作者處理序包含沙箱化解決方案執行的一或多個應用程式網域。根據預設,在沙箱化解決方案服務中執行的所有方案都在一個層中。您可以在沙箱化解決方案服務中設定其他層,以區隔沙箱化解決方案的效能、安全性以及可靠性。如需各層的詳細資訊,請參閱<沙箱化解決方案概觀 (SharePoint Server 2010)>和沙箱層 (可能為英文網頁) (https://go.microsoft.com/fwlink/?linkid=217145&clcid=0x404) (可能為英文網頁)。如需如何規劃層的資訊,請參閱<規劃沙箱化解決方案 (SharePoint Server 2010)>。

沙箱化解決方案服務提供一個環境,讓沙箱化解決方案可以在您的 Microsoft SharePoint Server 2010 伺服器陣列上執行。您可以使用 SharePoint 管理中心網站啟動和停止該項服務,不過必須使用 Windows PowerShell 設定服務的層以及大部分的其他功能。

本文內容:

  • 設定沙箱化解決方案服務層

  • 顯示沙箱化解決方案服務組態設定

  • 重新啟動沙箱化解決方案服務

設定沙箱化解決方案服務層

您可以使用這個程序設定沙箱化解決方案服務的層,以及設定工作者處理序、應用程式網域和每個層的其他內容。您可以使用這個程序中的程式碼範例當作獨立指令碼,或者可以將它合併至本文其他程序中的範例指令碼,用來設定層及其內容、顯示設定以及重新啟動服務。如需各層內容的詳細資訊,請參閱使用執行層保護正常執行的沙箱化解決方案 (可能為英文網頁)(https://go.microsoft.com/fwlink/?linkid=220258&clcid=0x404) (可能為英文網頁)。

設定層

  1. 確認符合下列基本需求:請參閱<Add-SPShellAdmin>。

  2. 複製下列程式碼,並將程式碼貼到文字編輯器 (例如,記事本):

    #Initialize the SPUserCodeService variable
    $uc=[Microsoft.SharePoint.Administration.SPUserCodeService]::local
    
    #Delete any existing default tiers first
    foreach($tier in $uc.Tiers)
    {
         $tier.Delete()
    }
    $uc.Tiers.Add("Tier1")
    $uc.Tiers["Tier1"].MaximumWorkerProcesses = 5
    $uc.Tiers["Tier1"].MaximumConnectionsPerProcess = 10
    $uc.Tiers["Tier1"].MaximumAppDomainsPerProcess = 10
    $uc.Tiers["Tier1"].PriorityPerProcess = [int] ([System.Diagnostics.ProcessPriorityClass]::Normal)
    $uc.Tiers["Tier1"].ResourceMaxValue = 0.1
    $uc.Tiers["Tier1"].Update()
    
    $uc.Tiers.Add("Tier2")
    $uc.Tiers["Tier2"].MaximumWorkerProcesses = 5
    $uc.Tiers["Tier2"].MaximumConnectionsPerProcess = 10
    $uc.Tiers["Tier2"].MaximumAppDomainsPerProcess = 10
    $uc.Tiers["Tier1"].PriorityPerProcess = [int] ([System.Diagnostics.ProcessPriorityClass]::BelowNormal)
    $uc.Tiers["Tier2"].ResourceMaxValue = 10
    $uc.Tiers["Tier2"].Update()
    
  3. 儲存檔案並將其命名為 ConfigureTiers.ps1。

  4. 在 [開始] 功能表上,按一下 [所有程式]。

  5. 按一下 [Microsoft SharePoint 2010 產品]。

  6. 按一下 [SharePoint 2010 管理命令介面]。

  7. 變更至您儲存檔案的目錄。

  8. 在 Windows PowerShell 命令提示字元處,輸入下列命令:

    ./ConfigureTiers.ps1
    
  9. 重新啟動伺服器上的 SharePoint 2010 User Code Host 服務。

顯示沙箱化解決方案服務組態設定

您可以使用這個程序顯示已經為沙箱化解決方案服務設定的層,以及顯示工作者處理序、應用程式網域以及目前為每個層設定的其他內容。您可以將這個指令碼附加到前述程序中的指令碼,或者用來當作獨立指令碼。

顯示現有的設定

  1. 確認符合下列基本需求:請參閱<Add-SPShellAdmin>。

  2. 複製下列程式碼,並將程式碼貼到文字編輯器 (例如,記事本):

    #Loop through and show the user what exactly has been created
    
    $uc=[Microsoft.SharePoint.Administration.SPUserCodeService]::Local
    
    Write-Host "The following tiers have been created"
    Write-Host "***********************************************************"
    
    foreach($tier in $uc.Tiers)
    {
         Write-Host "Tier Name: $($tier.Name)"
         Write-Host "Tier MaximumWorkerProcess: $($tier.MaximumWorkerProcesses)"
         Write-Host "Tier MaximumConnectionsPerProcess: $($tier.MaximumConnectionsPerProcess)"
         Write-Host "Tier MaximumAppDomainsPerProcess: $($tier.MaximumAppDomainsPerProcess)"
         Write-Host "Tier PriorityPerProcess: $($tier.PriorityPerProcess)"
         Write-Host "Tier ResourceMaxValue: $($tier.ResourceMaxValue)"
    
         Write-Host "***********************************************************"
    }
    
  3. 儲存檔案並將其命名為 DisplayTiers.ps1。

  4. 在 [開始] 功能表上,按一下 [所有程式]。

  5. 按一下 [Microsoft SharePoint 2010 產品]。

  6. 按一下 [SharePoint 2010 管理命令介面]。

  7. 變更至您儲存檔案的目錄。

  8. 在 Windows PowerShell 命令提示字元處,輸入下列命令:

    ./DisplayTiers.ps1
    

重新啟動沙箱化解決方案服務

沙箱化解決方案服務的設定有很多地方可以變更,但是只有該服務重新啟動之後,才會生效。這個程序會建立一個指令碼,您可以用於重新啟動沙箱化解決方案服務。這個指令碼可以附加至其他設定指令碼,當您變更設定後就會自動重新啟動服務。

使用 Windows PowerShell 重新啟動沙箱化解決方案服務

  1. 確認符合下列基本需求:請參閱<Add-SPShellAdmin>。

  2. 複製下列程式碼,並將程式碼貼到文字編輯器 (例如,記事本):

    #Recycle the UserCode Service
    $server = [Microsoft.Sharepoint.Administration.SPServer]::local
    
    $userCodeServiceInstance
    $getChildMethod
    $type = $server.GetType()
    
    foreach($method in $type.GetMethods())
    {
         if( $method.Name -eq "GetChild")
         {
              $getChildMethod = $method
         }
    }
    
    $genericMethod = $getChildMethod.MakeGenericMethod([microsoft.sharepoint.administration.spusercodeserviceinstance])
    $userCodeServiceInstance = $genericMethod.Invoke($server, $null)
    $userCodeServiceInstance.Provision()
    
  3. 儲存檔案並將其命名為 RestartService.ps1。

  4. 在 [開始] 功能表上,按一下 [所有程式]。

  5. 按一下 [Microsoft SharePoint 2010 產品]。

  6. 按一下 [SharePoint 2010 管理命令介面]。

  7. 變更至您儲存檔案的目錄。

  8. 在 Windows PowerShell 命令提示字元處,輸入下列命令:

    ./RestartService.ps1
    

See Also

Concepts

沙箱化解決方案概觀 (SharePoint Server 2010)
規劃沙箱化解決方案 (SharePoint Server 2010)
啟用伺服器陣列上的沙箱方案 (SharePoint Server 2010)
封鎖或解除封鎖沙箱方案 (SharePoint Server 2010)
設定沙箱方案的負載平衡 (SharePoint Server 2010)
設定沙箱化解決方案的資源點 (SharePoint Server 2010)