Kesalahan "Tipe tidak dapat dipelajari" ketika Anda menggunakan solusi kotak pasir atau komponen web (KB5015556)

Berlaku Untuk
SharePoint Foundation 2013 SP1 SharePoint Server 2016

Gejala

Saat Anda menggunakan solusi kotak pasir atau komponen web, Anda mungkin menerima pesan kesalahan yang menyerupai hal berikut ini dalam log SharePoint Unified Logging System (ULS). Pesan ini menunjukkan beberapa solusi kotak pasir atau komponen web diblokir.

Untuk SharePoint Foundation 2013 dan SharePoint Enterprise Server 2016 dengan pembaruan keamanan Mei 2022 yang terinstal:

ID Kejadian Pesan
ajrme Catatan: Panggilan ExecuteRequestInSandBox gagal. System.ArgumentException: Type was not resolvable at Microsoft.SharePoint.UserCode.SPUserCodeExecutionManager.SPUserCodeSerializationBinder.BindToType(String assemblyName, String typeName)
at
…...
ajlz0 Catatan: Mendapatkan Pesan Kesalahan untuk Exception System.ArgumentException: Type was not resolvable at Microsoft.SharePoint.UserCode.SPUserCodeExecutionManager.SPUserCodeSerializationBinder.BindToType(String assemblyName, String typeName)
at
…...

Untuk SharePoint Foundation 2013 dengan pembaruan keamanan Juni 2022 atau pembaruan keamanan yang lebih baru diinstal dan untuk SharePoint Enterprise Server 2016 dengan pembaruan keamanan Juli 2022 atau pembaruan keamanan yang lebih baru diinstal:

ID Kejadian Pesan
6k389 Catatan: Tipe tidak valid: type=XXXXX; assembly=YYYYY, dalam SPUserCodeSerializationBinder. Kunjungi https://go.microsoft.com/fwlink/?LinkId=2196531 untuk informasi selengkapnya dan untuk mempelajari cara mengatasi kesalahan ini.
ajrme Catatan: Panggilan ExecuteRequestInSandBox gagal. System.ArgumentException: Type was not resolvable at Microsoft.SharePoint.UserCode.SPUserCodeExecutionManager.SPUserCodeSerializationBinder.BindToType(String assemblyName, String typeName)
at
…...
ajlz0 Catatan: Mendapatkan Pesan Kesalahan untuk Exception System.ArgumentException: Type was not resolvable at Microsoft.SharePoint.UserCode.SPUserCodeExecutionManager.SPUserCodeSerializationBinder.BindToType(String assemblyName, String typeName)
at
…...

Penyebab

Dimulai dengan pembaruan keamanan Mei 2022, layanan kotak pasir SharePoint lebih lanjut membatasi tipe dan perakitan yang diperbolehkan untuk dijalankan secara default.

Resolusi

Untuk memperbaiki masalah ini, Anda harus mendaftarkan tipe atau perakitan pihak ketiga yang akan diperbolehkan untuk dijalankan oleh layanan kotak pasir SharePoint. Untuk melakukannya, ikuti langkah-langkah berikut:

  1. Untuk SharePoint Foundation 2013, instal pembaruan keamanan Juni 2022 atau pembaruan keamanan yang lebih baru. Untuk SharePoint Enterprise Server 2016, instal pembaruan keamanan Juli 2022 atau pembaruan keamanan yang lebih baru.

  2. Gunakan solusi kotak pasir atau komponen web yang terpengaruh untuk memicu masalah.

  3. Buka log SharePoint ULS dan cari ID kejadian "6K389". Anda akan menemukan pesan berikut dengan ID kejadian tersebut:

    Catatan

    Tipe tidak valid: type=XXXXX; assembly=YYYYY dalam SPUserCodeSerializationBinder. Kunjungi https://go.microsoft.com/fwlink/?LinkId=2196531 untuk informasi selengkapnya dan untuk mempelajari cara mengatasi kesalahan ini.

  4. Perhatikan tipe dan perakitan yang diblokir.

  5. Buka file web.config aplikasi web tempat Solusi Sandbox atau webpart berada. Jalur web.config biasanya terlihat seperti berikut ini:

    C:\inetpub\wwwroot\wss\VirtualDirectories\<web application port>

  6. Tambahkan elemen AllowedListItems di bagian konfigurasi/SharePoint/SafeMode.

  7. Di dalam elemen AllowedListItems , tambahkan elemen AllowedItem dengan atribut Name diatur ke AllowedSandboxType dalam format berikut:

  • Untuk membuka blokir tipe tertentu, tambahkan elemen dengan properti Tipe sebagai berikut:

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

  • Untuk membuka blokir majelis tertentu, tambahkan elemen dengan properti Perakitan sebagai berikut:

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

Berikut ini adalah contohnya:

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