Objawy
Podczas korzystania z rozwiązania w trybie piaskownicy lub składnika Web Part mogą być wyświetlane komunikaty o błędach dzienników systemu zunifikowanego rejestrowania (ULS) programu SharePoint podobne do poniższych. Te komunikaty wskazują, że niektóre rozwiązania lub składniki Web Part w trybie piaskownicy są zablokowane.
W przypadku programów SharePoint Foundation 2013 i SharePoint Enterprise Server 2016 z zainstalowaną aktualizacją zabezpieczeń z maja 2022 r.:
| Identyfikator zdarzenia | Wiadomość |
|---|---|
| ajrme powiedział: |
Uwaga: Wywołanie ExecuteRequestInSandBox nie powiodło się. System.ArgumentException: Typ nie był rozpoznawany w Microsoft.SharePoint.UserCode.SPUserCodeExecutionManager.SPUserCodeSerializationBinder.BindToType(String assemblyName, String typeName) at …... |
| ajlz0 powiedział: |
Uwaga: Komunikat o błędzie dotyczący wyjątku System.ArgumentException: Typ nie był rozpoznawany w Microsoft.SharePoint.UserCode.SPUserCodeExecutionManager.SPUserCodeSerializationBinder.BindToType(String assemblyName, String typeName) at …... |
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ą aktualizacją zabezpieczeń:
| Identyfikator zdarzenia | Wiadomość |
|---|---|
| 6K389 powiedział: | Uwaga: 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 powiedział: |
Uwaga: Wywołanie ExecuteRequestInSandBox nie powiodło się. System.ArgumentException: Typ nie był rozpoznawany w Microsoft.SharePoint.UserCode.SPUserCodeExecutionManager.SPUserCodeSerializationBinder.BindToType(String assemblyName, String typeName) at …... |
| ajlz0 powiedział: |
Uwaga: Komunikat o błędzie dotyczący wyjątku System.ArgumentException: Typ nie był rozpoznawany w Microsoft.SharePoint.UserCode.SPUserCodeExecutionManager.SPUserCodeSerializationBinder.BindToType(String assemblyName, String typeName) at …... |
Przyczyna
Począwszy od aktualizacji zabezpieczeń z maja 2022 r., usługa piaskownicy programu SharePoint dodatkowo ogranicza typy i zestawy, które mogą być uruchamiane domyślnie.
Rozwiązanie
Aby rozwiązać ten problem, musisz zarejestrować typy lub zestawy innych firm, których uruchamianie będzie dozwolone przez usługę piaskownicy programu SharePoint. W tym celu wykonaj następujące czynności:
W przypadku programu SharePoint Foundation 2013 zainstaluj aktualizację zabezpieczeń z czerwca 2022 r. lub nowszą aktualizację zabezpieczeń. W przypadku programu SharePoint Enterprise Server 2016 zainstaluj aktualizację zabezpieczeń z lipca 2022 r. lub nowszą.
Użyj rozwiązania lub składnika Web Part w piaskownicy, na które ma wpływ problem, aby wywołać problem.
Otwórz dziennik systemu ULS programu SharePoint i poszukaj zdarzenia o identyfikatorze "6K389". Zostanie wyświetlony następujący komunikat z tym identyfikatorem zdarzenia:
Uwaga
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 blokowane typy i zespoły.
Otwórz plik web.config aplikacji internetowej, w której znajdują się rozwiązania lub składniki Web Part w trybie piaskownicy. Ścieżka web.config zwykle wygląda następująco:
C:\inetpub\wwwroot\wss\VirtualDirectories\<port aplikacji sieci Web>
Dodaj element AllowedListItems w sekcji configuration/SharePoint/SafeMode.
Wewnątrz elementu AllowedListItems dodaj element AllowedItem z atrybutem Name ustawionym na AllowedSandboxType w następującym formacie:
Aby odblokować określone typy, dodaj elementy z 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>