Symptomy
Podczas korzystania z rozwiązania w trybie piaskownicy lub składnika Web Part mogą zostać wyświetlone komunikaty o błędach podobne do poniższych w SharePoint dzienników ujednoliconego systemu rejestrowania (ULS). Te komunikaty wskazują, że niektóre rozwiązania w trybie piaskownicy lub składniki Web Part są zablokowane.
W przypadku programu SharePoint Foundation 2013 i SharePoint Enterprise Server 2016 z zainstalowaną aktualizacją zabezpieczeń z maja 2022 r.:
Identyfikator zdarzenia |
Komunikat |
ajrme |
Nie powiodło się wywołanie ExecuteRequestInSandBox. System.ArgumentException: Typ nie był rozpoznawalny w firmie Microsoft. SharePoint. UserCode.SPUserCodeExecutionManager.SPUserCodeSerializationBinder.BindToType(String assemblyName, String typeName) |
ajlz0 |
Komunikat o błędzie dla pliku Exception System.ArgumentException: Typ nie był możliwy do rozwiązania w firmie Microsoft. SharePoint. UserCode.SPUserCodeExecutionManager.SPUserCodeSerializationBinder.BindToType(String assemblyName, String typeName) |
W przypadku programu SharePoint Foundation 2013 z zainstalowaną aktualizacją zabezpieczeń z czerwca 2022 r. lub nowszą aktualizacją zabezpieczeń oraz dla programu SharePoint Enterprise Server 2016 z zainstalowaną aktualizacją zabezpieczeń z lipca 2022 r. lub nowszą:
Identyfikator zdarzenia |
Komunikat |
6k389 |
Nieprawidłowy typ: type=XXXXX; assembly=YYYYY, w SPUserCodeSerializationBinder. Odwiedź https://go.microsoft.com/fwlink/?LinkId=2196531, aby uzyskać więcej informacji i dowiedzieć się, jak rozwiązać ten błąd. |
ajrme |
Nie powiodło się wywołanie ExecuteRequestInSandBox. System.ArgumentException: Typ nie był rozpoznawalny w firmie Microsoft. SharePoint. UserCode.SPUserCodeExecutionManager.SPUserCodeSerializationBinder.BindToType(String assemblyName, String typeName) |
ajlz0 |
Komunikat o błędzie dla pliku Exception System.ArgumentException: Typ nie był możliwy do rozwiązania w firmie Microsoft. SharePoint. UserCode.SPUserCodeExecutionManager.SPUserCodeSerializationBinder.BindToType(String assemblyName, String typeName) |
Przyczyna
Począwszy od aktualizacji zabezpieczeń z maja 2022 r., usługa SharePoint piaskownicy dodatkowo ogranicza typy i zestawy, które pozwala na domyślne uruchamianie.
Rozwiązanie
Aby rozwiązać ten problem, należy zarejestrować typy lub zestawy innych firm, na które SharePoint usługa piaskownicy będzie mogła zostać uruchomiona. W tym celu wykonaj następujące czynności:
-
W przypadku programu SharePoint Foundation 2013 zainstaluj aktualizację zabezpieczeń z czerwca 2022 r. lub nowszą. W przypadku SharePoint Enterprise Server 2016 zainstaluj aktualizację zabezpieczeń z lipca 2022 r. lub nowszą.
-
Aby wyzwolić problem, użyj rozwiązania piaskownicy lub składnika Web Part, którego dotyczy problem.
-
Otwórz SharePoint dzienniku uls i poszukaj identyfikatora zdarzenia "6K389". Zostanie wyświetlony następujący komunikat z identyfikatorem zdarzenia:
Nieprawidłowy typ: type=XXXXX; assembly=YYYYY w spuserCodeSerializationBinder. Odwiedź https://go.microsoft.com/fwlink/?LinkId=2196531, aby uzyskać więcej informacji i dowiedzieć się, jak rozwiązać ten błąd.
-
Zwróć uwagę na typy i zestawy, które są zablokowane.
-
Otwórz plik web.config aplikacji sieci Web, w której znajdują się rozwiązania w trybie piaskownicy lub składniki Web Part. Ścieżka web.config zwykle wygląda następująco:
C:\inetpub\wwwroot\wss\VirtualDirectories\<port aplikacji sieci Web> -
Dodaj element AllowedListItems w sekcji konfiguracja/SharePoint/SafeMode.
-
Wewnątrz elementu AllowedListItems dodaj element AllowedItem z atrybutemName ustawionym na AllowedSandboxType w następującym formacie:
-
Aby odblokować określone typy, dodaj elementy o właściwości Type w następujący sposób:
<AllowedItem Name="AllowedSandboxType" Type="XXXXX"/> -
Aby odblokować określone zestawy, dodaj elementy z właściwością Assembly w następujący sposób:
<AllowedItem Name="AllowedSandboxType" Assembly="YYYYY"/>
Oto przykład:
<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>