Saya memiliki Layanan WCF yang mengembalikan 1000 catatan dari database ke klien. Saya memiliki klien ASP.NET WCF (Saya telah menambahkan referensi layanan dalam proyek aplikasi web asp.net untuk mengkonsumsi WCF).
Saya mendapatkan pesan berikut ketika saya menjalankan aplikasi klien:
Kuota ukuran pesan maksimum untuk pesan masuk (65536) telah terlampaui. Untuk menambah kuota, gunakan properti MaxReceivedMessageSize pada elemen pengikatan yang sesuai.
Ada bantuan? Bagaimana cara meningkatkan kuota ukuran pesan?
Jawaban:
Anda akan menginginkan sesuatu seperti ini untuk meningkatkan kuota ukuran pesan, di file App.config atau Web.config :
Dan gunakan nama yang mengikat dalam konfigurasi titik akhir Anda mis
Pembenaran untuk nilai-nilai ini sederhana, mereka cukup besar untuk mengakomodasi sebagian besar pesan. Anda dapat menyetel nomor itu agar sesuai dengan kebutuhan Anda. Nilai default rendah pada dasarnya ada untuk mencegah serangan tipe DOS. Membuatnya 20000000 akan memungkinkan serangan DOS terdistribusi menjadi efektif, ukuran default 64k akan membutuhkan sejumlah besar klien untuk mengalahkan sebagian besar server saat ini.
sumber
Jika Anda masih mendapatkan pesan kesalahan ini saat menggunakan Klien Uji WCF, itu karena klien memiliki pengaturan MaxBufferSize yang terpisah .
Untuk memperbaiki masalah ini:
Daftar pengaturan yang dapat diedit akan muncul, termasuk MaxBufferSize.
Catatan: Klien proksi yang dibuat secara otomatis juga menetapkan MaxBufferSize ke 65536 secara default.
sumber
Jika Anda membuat binding WCF Anda secara dinamis, inilah kode yang harus digunakan:
sumber
The WCF Test Klien memiliki itu konfigurasi klien sendiri.
Jalankan klien uji dan gulir ke bawah. Jika Anda mengklik dua kali simpul File Konfigurasi Anda akan melihat representasi XML. Seperti yang dapat Anda lihat
maxReceivedMessageSize
adalah65536
.Untuk mengedit ini, Klik Kanan node pohon Config File dan pilih Edit With
SvcConfigEditor
. Ketika editor membuka buka Bindings dan klik dua kali ikatan yang dihasilkan secara otomatis.Anda dapat mengedit semua properti di sini, termasuk
maxReceivedMessageSize
. Setelah selesai klik File - Save .Terakhir, ketika Anda kembali ke jendela WCF Test Client, klik Tools - Options .
CATATAN : Hapus centang pada konfigurasi Selalu regenerasi saat meluncurkan layanan .
sumber
Always regenerate config
opsi.Saya menemukan cara mudah
sumber
Saya memecahkan masalah ... sebagai berikut
sumber
Saya memecahkan masalah saya di Bing Maps WPF pada proyek saya Menggunakan CalculateRoute (). Solusi dalam kasus saya adalah mengatur maxReceivedMessageSize dan maxReceivedMessageSize pada atribut "httpTransport" untuk bagian "customBinding".
Saya atur di file Applications.config (es. MyApp.config) konfigurasi ini:
sumber
sumber
Untuk HTTP:
Untuk TCP:
PENTING:
Jika Anda mencoba untuk melewati objek kompleks yang memiliki banyak objek yang terhubung (misalnya: struktur data pohon, daftar yang memiliki banyak objek ...), komunikasi akan gagal tidak peduli bagaimana Anda meningkatkan kuota. Dalam kasus seperti itu, Anda harus meningkatkan jumlah objek yang mengandung:
sumber
maxItemsInObjectGraph
solusi (cepat) bagi saya. Tetapi ketika meningkatkan ini, Anda harus berpikir tentang apakah solusi yang lebih baik untuk aplikasi Anda untuk meminta data dalam potongan, sebagai lawan dari grafik objek besar yang dapat menyaring sumber daya.Bagi saya, yang harus saya lakukan adalah menambahkan
maxReceivedMessageSize="2147483647"
ke app.config klien. Server dibiarkan tidak tersentuh.sumber
Hal penting lain yang perlu dipertimbangkan dari pengalaman saya ..
Saya akan sangat menyarankan TIDAK untuk memaksimalkan maxBufferPoolSize, karena buffer dari kumpulan tidak pernah dirilis sampai domain-aplikasi (yaitu Application Pool) didaur ulang.
Periode lalu lintas tinggi dapat menyebabkan banyak memori digunakan dan tidak pernah dirilis.
Lebih detail di sini:
sumber
Jangan lupa bahwa app.config dari titik entri eksekusi akan dipertimbangkan, bukan proyek perpustakaan kelas yang mengelola panggilan Web-Service jika ada.
Misalnya jika Anda mendapatkan kesalahan saat menjalankan unit test, Anda perlu mengatur konfigurasi yang sesuai dalam proyek pengujian.
sumber
saya mendapatkan kesalahan ini saat menggunakan pengaturan ini di web.config
saya mengatur pengaturan seperti ini:
sumber
bindings
elemen Nate dan mem-posting ulang sebagai bagian dari jawabannya.2000000
Nilai - nilai itu sangat berbeda.