現象
サンドボックスソリューションまたは Web パーツを使用すると、SharePoint Unified Logging System(ULS)ログに次のようなエラーメッセージが表示される場合があります。 これらのメッセージは、一部のサンドボックスソリューションまたは Web パーツがブロックされていることを示しています。
SharePoint Foundation 2013 および SharePoint Enterpriseの場合 2022 年 5 月のセキュリティ更新プログラムがインストールされた Server 2016:
イベント ID |
メッセージ |
ajrme |
ExecuteRequestInSandBox 呼び出しが失敗しました。 System.ArgumentException:Microsoft.SharePoint.UserCode.SPUserCodeExecutionManager.SPUserCodeSerializationBinder.BindToType(String assemblyName、String typeName)でタイプを解決できませんでした |
ajlz0 |
Exception System.ArgumentException のエラーメッセージが表示されます:Microsoft.SharePoint.UserCode.SPUserCodeExecutionManager.SPUserCodeSerializationBinder.BindToType(String assemblyName、String typeName)でタイプを解決できませんでした |
2022 年 6 月のセキュリティ更新プログラムまたはそれ以降のセキュリティ更新プログラムがインストールされた SharePoint Foundation 2013 の場合、および 2022 年 7 月のセキュリティ更新プログラム以降のセキュリティ更新プログラムがインストールされた SharePoint Enterprise Server 2016の場合:
イベント ID |
メッセージ |
6k389 |
無効なタイプ:type = XXXXX;アセンブリ=YYYYY、SPUserCodeSerializationBinder内。 詳細およびこのエラーの解決方法については、https://go.microsoft.com/fwlink/?LinkId=2196531にアクセスしてください。 |
ajrme |
ExecuteRequestInSandBox 呼び出しが失敗しました。 System.ArgumentException:Microsoft.SharePoint.UserCode.SPUserCodeExecutionManager.SPUserCodeSerializationBinder.BindToType(String assemblyName、String typeName)でタイプを解決できませんでした |
ajlz0 |
Exception System.ArgumentException のエラーメッセージが表示されます:Microsoft.SharePoint.UserCode.SPUserCodeExecutionManager.SPUserCodeSerializationBinder.BindToType(String assemblyName、String typeName)でタイプを解決できませんでした |
原因
2022 年 5 月のセキュリティ更新プログラム以降、SharePoint サンドボックスサービスは、既定で実行できるタイプとアセンブリをさらに制限します。
解決方法
この問題を解決するには、SharePoint のサンドボックスサービスが実行を許可するサードパーティのタイプまたはアセンブリを登録する必要があります。 この場合、次の手順を実行します。
-
SharePoint Foundation 2013の場合は、2022 年 6 月のセキュリティ更新プログラムまたはそれ以降のセキュリティ更新プログラムをインストールします。 SharePoint Enterprise Server 2016 の場合は、2022 年 7 月のセキュリティ更新プログラムまたはそれ以降のセキュリティ更新プログラムをインストールします。
-
影響を受けるサンドボックスソリューションまたは Web パーツを使用して、問題をトリガーします。
-
SharePoint ULS ログを開き、イベント ID「6K389」を探します。 そのイベント ID で以下のメッセージが表示されます:
無効なタイプ:type = XXXXX; SPUserCodeSerializationBinder の assembly=YYYYY。 詳細およびこのエラーの解決方法については、https://go.microsoft.com/fwlink/?LinkId=2196531にアクセスしてください。
-
ブロックされているタイプとアセンブリに注意してください。
-
サンドボックスソリューションまたは Web パーツが配置されている Web アプリケーションの web.config ファイルを開きます。 web.config のパスは通常、次のようになります:
C:\ inetpub \ wwwroot \ wss \ VirtualDirectories\<Web アプリケーションポート> -
configuration / SharePoint/SafeMode セクションにAllowedListItems要素を追加します。
-
AllowedListItems要素内に、Name属性がAllowedSandboxTypeに設定されたAllowedItem要素を次の形式で追加します。
-
特定のタイプのブロックを解除するには、次のようにTypeプロパティを使用して要素を追加します。
<AllowedItem Name = "AllowedSandboxType" Type = "XXXXX" /> -
特定のアセンブリのブロックを解除するには、次のようにアセンブリプロパティを使用して要素を追加します。
<AllowedItem Name = "AllowedSandboxType" Assembly = "YYYYY" />
以下はその一例です:
<SafeMode
MaxControls = "200"
CallStack = "false"
DirectFileDependencies ="10"
TotalFileDependencies = "250"
AllowPageLevelTrace = "false"
ControlCompatMode="false"
>
<PageParserPaths>
</PageParserPaths>
<AllowedListItems>
<AllowedItem Name="AllowedSandboxType" Type="Microsoft.SharePoint.Portal.WebControls.RSSAggregatorWebPart, Microsoft.SharePoint.Portal, Version=15.0.0.0, Culture=neutral, PublicKeyToken=xxxxxx"/>
<AllowedItem Name="AllowedSandboxType" Assembly="System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=xxxxxx"/>
</AllowedListItems>
</SafeMode>