サンドボックス ソリューション サービスの層を構成する (SharePoint Server 2010)

 

適用先: SharePoint Foundation 2010, SharePoint Server 2010

トピックの最終更新日: 2016-11-30

サンドボックス ソリューションは、各要求の平均リソース使用量に基づいて、サンドボックス ソリューション サービス内の "層" にグループ化できます。1 つの層は 1 つ以上のワーカー プロセスで構成され、各ワーカー プロセスに 1 つ以上のアプリケーション ドメインが含まれ、各アプリケーション ドメインでサンドボックス ソリューションが実行されます。既定では、サンドボックス ソリューション サービス内の 1 つの層ですべてのソリューションが実行されます。パフォーマンス、セキュリティ、および信頼性の向上を目的として、サンドボックス ソリューション サービス内にサンドボックス ソリューションを分離する 2 つ目以降の層を構成できます。層の詳細については、「サンドボックス ソリューションの概要 (SharePoint Server 2010)」および「Sandbox Tiers (英語)」(https://go.microsoft.com/fwlink/?linkid=217145&clcid=0x411) (英語) を参照してください。層を計画する方法については、「サンドボックス ソリューションを計画する (SharePoint Server 2010)」を参照してください。

サンドボックス ソリューション サービスは、Microsoft SharePoint Server 2010 ファームでサンドボックス ソリューションを実行する環境を提供します。このサービスは、SharePoint サーバーの全体管理 Web サイトを使用して開始および停止できますが、層およびこのサービスの他の大多数の機能を構成するには、Windows PowerShell を使用する必要があります。

この記事の内容

  • サンドボックス ソリューション サービスの層を構成する

  • サンドボックス ソリューション サービス構成の設定を表示する

  • サンドボックス ソリューション サービスを再起動する

サンドボックス ソリューション サービスの層を構成する

この手順を使用すると、サンドボックス ソリューション サービスを構成したり、ワーカー プロセスやアプリケーション ドメインをはじめとする各層のプロパティを構成したりできます。この手順のコード サンプルは、スタンド アロンのスクリプトとして使用できるほか、この記事にある他の手順のサンプル スクリプトと組み合わせて層とそのプロパティの構成、設定内容の表示、サービスの再起動を行うこともできます。層のプロパティの詳細については、「Using Execution Tiers to Protect Well-Behaved Sandboxed Solutions (英語)」(https://go.microsoft.com/fwlink/?linkid=220258&clcid=0x411) (英語) を参照してください。

層を構成するには

  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)