Chyba "Typ nebylo možné vyřešit" při použití řešení sandboxu nebo webové části (KB5015556)

Platí pro
SharePoint Foundation 2013 SP1 SharePoint Server 2016

Příznaky

Když používáte řešení izolovaného prostoru (sandbox) nebo webovou část, můžou se v protokolech služby ULS (SharePoint Unified Logging System) zobrazit chybové zprávy podobné následující. Tyto zprávy označují zablokování některých řešení izolovaného prostoru (sandbox) nebo některých webových částí.

Pro SharePoint Foundation 2013 a SharePoint Enterprise Server 2016 s nainstalovanou aktualizací zabezpečení z května 2022:

ID události Zpráva
ajrme Poznámka: ExecuteRequestInSandBox volání selhalo. System.ArgumentException: Type was not resolvable at Microsoft.SharePoint.UserCode.SPUserCodeExecutionManager.SPUserCodeSerializationBinder.BindToType(String assemblyName, String typeName)
at
…...
ajlz0 Poznámka: Zobrazování chybové zprávy pro výjimku System.ArgumentException: Type was not resolvable at Microsoft.SharePoint.UserCode.SPUserCodeExecutionManager.SPUserCodeSerializationBinder.BindToType(String assemblyName, String typeName)
at
…...

Pro SharePoint Foundation 2013 s nainstalovanou aktualizací zabezpečení z června 2022 nebo novější aktualizací zabezpečení a pro SharePoint Enterprise Server 2016 s nainstalovanou aktualizací zabezpečení z července 2022 nebo novější aktualizací zabezpečení:

ID události Zpráva
6K389 Poznámka: Neplatný typ: type=XXXXX; assembly=YYYYY, v SPUserCodeSerializationBinder. Navštivte https://go.microsoft.com/fwlink/?LinkId=2196531, kde najdete další informace a informace o řešení této chyby.
ajrme Poznámka: ExecuteRequestInSandBox volání selhalo. System.ArgumentException: Type was not resolvable at Microsoft.SharePoint.UserCode.SPUserCodeExecutionManager.SPUserCodeSerializationBinder.BindToType(String assemblyName, String typeName)
at
…...
ajlz0 Poznámka: Zobrazování chybové zprávy pro výjimku System.ArgumentException: Type was not resolvable at Microsoft.SharePoint.UserCode.SPUserCodeExecutionManager.SPUserCodeSerializationBinder.BindToType(String assemblyName, String typeName)
at
…...

Příčina

Počínaje aktualizací zabezpečení z května 2022 služba Sandbox služby SharePoint dále omezuje typy a sestavení, které umožňuje ve výchozím nastavení spouštět.

Řešení

Chcete-li tento problém vyřešit, musíte zaregistrovat typy nebo sestavení třetích stran, které služba Sandbox služby SharePoint umožní spustit. Postupujte takto:

  1. Pro SharePoint Foundation 2013 nainstalujte aktualizaci zabezpečení z června 2022 nebo novější aktualizaci zabezpečení. Pro SharePoint Enterprise Server 2016 nainstalujte aktualizaci zabezpečení z července 2022 nebo novější aktualizaci zabezpečení.

  2. K aktivaci problému použijte řešení sandboxu, kterého se tento problém týká, nebo webovou část.

  3. Otevřete protokol ULS služby SharePoint a vyhledejte ID události 6K389. Najdete následující zprávu s tímto ID události:

    Poznámka

    Neplatný typ: type=XXXXX; assembly=YYYYY v SPUserCodeSerializationBinder. Navštivte https://go.microsoft.com/fwlink/?LinkId=2196531, kde najdete další informace a informace o řešení této chyby.

  4. Všimněte si blokovaných typů a sestav.

  5. Otevřete web.config soubor webové aplikace, ve které jsou umístěná řešení Sandboxu nebo webové části. Trasa web.config obvykle vypadá takto:

    C:\inetpub\wwwroot\wss\VirtualDirectories\<port webové aplikace>

  6. Přidejte element AllowedListItems v oddílu configuration/SharePoint/SafeMode.

  7. Uvnitř elementu AllowedListItems přidejte element AllowedItem s atributem Name nastaveným na AllowedSandboxType v následujícím formátu:

  • Chcete-li odblokovat konkrétní typy, přidejte prvky s Type vlastností následujícím způsobem:

    <AllowedItem Name="AllowedSandboxType" Type="XXXXX"/>

  • Chcete-li odblokovat konkrétní sestavy, přidejte prvky pomocí vlastnosti Sestava následujícím způsobem:

    <AllowedItem Name="AllowedSandboxType" Assembly="YYYYY"/>

Tady je příklad:

<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>