Signalr: Mendapatkan Kesalahan saat menggunakan Newtonsoft.Json Versi 10.0 dengan Microsoft.AspNet.SignalR.Client Versi 2.2.1.0.

Dibuat pada 17 Mei 2017  ·  7Komentar  ·  Sumber: SignalR/SignalR

Mendapatkan Kesalahan saat menggunakan Newtonsoft.Json Versi 10.0 dengan Microsoft.AspNet.SignalR.Client Versi 2.2.1.0. Saya mendapatkan kesalahan di bawah ini saat membuat HubConnection baru di SignalR.

Bahkan saya sudah memberikan referensi Newtonsoft.Json Versi 10.0.0 dari Installing Package dari Nuget Package Manager.

Pesan Pengecualian: Tidak dapat memuat file atau rakitan 'Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' atau salah satu dependensinya. Sistem tidak dapat menemukan berkas yang dicari.

StackTrace:
di Microsoft.AspNet.SignalR.Client.Connection..ctor(String url, String queryString)
di Microsoft.AspNet.SignalR.Client.HubConnection..ctor(String url, Boolean useDefaultUrl)
di Microsoft.AspNet.SignalR.Client.HubConnection..ctor(String url)
di MyNamespace.MyClass.ConnectToWebModuleHub()

Log Penggabungan:
=== Informasi status pra-ikatan ===
LOG: DisplayName = Newtonsoft.Json, Versi=6.0.0.0, Culture=netral, PublicKeyToken=30ad4fe6b2a6aeed
(Sepenuhnya ditentukan)
LOG: Appbase = file:///C:/Program Files (x86)/
About blank
LOG: PrivatePath Awal = NULL

Memanggil perakitan: Microsoft.AspNet.SignalR.Client, Versi=2.2.1.0, Budaya=netral, PublicKeyToken=31bf3856ad364e35.

LOG: Ikatan ini dimulai dalam konteks beban LoadFrom.
WRN: Gambar asli tidak akan diperiksa dalam konteks LoadFrom. Gambar asli hanya akan diperiksa dalam konteks pemuatan default, seperti dengan Assembly.Load().
LOG: Menggunakan file konfigurasi aplikasi:
LOG: Menggunakan file konfigurasi host:
LOG: Menggunakan file konfigurasi mesin dari C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
LOG: Referensi pasca-kebijakan: Newtonsoft.Json, Versi=6.0.0.0, Budaya=netral, PublicKeyToken=30ad4fe6b2a6aeed
LOG: Ikatan yang sama terlihat sebelumnya, dan gagal dengan hr = 0x80070002.

Komentar yang paling membantu

@moozzyk Terima kasih atas balasannya.

Saya juga telah menginstal SignalR melalui Nuget Package Manager dan sekarang saya telah memperbarui Newtonsoft Json saya ke versi 6.0.5 dan sekarang berfungsi dengan baik. Jadi benarkah Microsoft.AspNet.SignalR.Client Versi 2.2.1.0 hanya kompatibel dengan Newtonsoft.Json Versi 6.x ? Karena saya menggunakan Microsoft.AspNet.SignalR.Core Versi 2.2.1.0 dengan Newtonsoft.Json Versi 10.x , meskipun berfungsi dengan baik, tidak menimbulkan masalah apa pun. Saya terkejut karena meskipun saya telah menginstal keduanya dari Nuget Package Manager, ia sedang mencari Newtonsoft.Json Version 6.0 .

Semua 7 komentar

Mungkin Anda harus mencoba menambahkan AssemblyBinding ke file konfigurasi Anda.

<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  <dependentAssembly>
    <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
  </dependentAssembly>
</assemblyBinding>

Apakah itu bekerja untuk Anda?

@Thiago-Caramelo Terima kasih telah membalas.

Sebenarnya saya telah mencoba hal yang sama sebelum menambahkan masalah ini di sini tetapi tidak berhasil untuk saya.

@hardikpatelse - pengalihan mengikat harus bekerja. Jika tidak, Anda perlu menunjukkan proyek Anda. Klien SignalR bergantung pada Newtonsoft.Json 6.0.4 . Hanya satu versi Majelis yang dapat dimuat ke dalam AppDomain dan jika Anda menginstal versi 10.x dan itu dimuat, SignalR tidak dapat menemukan versi 6.x yang dikompilasi. Pengalihan yang mengikat memungkinkan penggunaan versi rakitan yang berbeda dengan versi yang diminta. Tampaknya dalam kasus Anda ini tidak terjadi. Saya pikir NuGet harus menambahkan pengalihan pengikatan yang sesuai jika diperlukan saat menginstal sebuah paket.

@moozzyk Terima kasih atas balasannya.

Saya juga telah menginstal SignalR melalui Nuget Package Manager dan sekarang saya telah memperbarui Newtonsoft Json saya ke versi 6.0.5 dan sekarang berfungsi dengan baik. Jadi benarkah Microsoft.AspNet.SignalR.Client Versi 2.2.1.0 hanya kompatibel dengan Newtonsoft.Json Versi 6.x ? Karena saya menggunakan Microsoft.AspNet.SignalR.Core Versi 2.2.1.0 dengan Newtonsoft.Json Versi 10.x , meskipun berfungsi dengan baik, tidak menimbulkan masalah apa pun. Saya terkejut karena meskipun saya telah menginstal keduanya dari Nuget Package Manager, ia sedang mencari Newtonsoft.Json Version 6.0 .

Kami tidak mengubah versi ketergantungan utama dalam rilis kecil sehingga kami tetap bergantung pada Newtonsoft.Json 6.x. Pengguna dapat (dan banyak yang melakukannya) memaksa menggunakan versi dependensi yang lebih baru. Saya belum melihat laporan SignalR 2.x tidak bekerja dengan Newtonsoft.Json 9.x atau 10.x.

Masalah diselesaikan sekarang dengan menggunakan Assembly Resolve dan diberi jalur NewtonSoft JSON versi 10.0.

Halo @hardikpatelse
Saya memiliki Masalah yang sama dengan FcmSharp dan Microsoft.AspNet.SignalR.Client.
FcmSharp menggunakan FcmSharp FcmSharp Newtonsoft.Json (>= 12.0.1) dan Microsoft.AspNet.SignalR.Client hanya menggunakan newtonsoft.json, versi=6.0.0.0.
Saya ingin menggunakan FcmSharp di SQL CLR saya, di CREATE ASSEMBLY tunjukkan kesalahan ini.

Majelis 'SqlLibrary' merujuk Majelis 'newtonsoft.json, versi=6.0.0.0, culture=neutral, publickeytoken=30ad4fe6b2a6aeed.', yang tidak ada dalam database saat ini. SQL Server berusaha mencari dan secara otomatis memuat rakitan yang direferensikan dari lokasi yang sama dari mana rakitan rujukan berasal, tetapi operasi itu gagal (alasan: 2 (Sistem tidak dapat menemukan file yang ditentukan.)). Harap muat Majelis yang direferensikan ke dalam database saat ini dan coba lagi permintaan Anda.

Bagaimana Majelis Menyelesaikan dan diberi jalur NewtonSoft JSON versi 12.0?

Apakah halaman ini membantu?
0 / 5 - 0 peringkat