IIS7 - (413) Varlık Çok Büyük | uploadReadAheadSize İsteği
XML ile bir servis yazdım .NET IIS 7.5 ile benim Windows 7 x64
Son sistem barındırılan 4.0,.
Hizmet yöntemlerden biri olan 'argümanı ve ben bir byte göndermek için çalışıyorum' [] resim içerir.nesne
Bu resmin dosya boyutunu daha sonra yaklaşık olarak. 48KB, her şey iyi gidiyor. Ama eğer daha büyük bir resim yüklemeye çalışıyorum, bisiklet Federasyonu hizmet hata verir: (413) Request Entity Too Large.
Yani tabiki hata iletisi ve bu konu yetiştirme öneriyor ilgili gördüğüm her konu Googling 3 saat geçirdim 'uploadReadAheadSize' özelliği.
Ben ne yaptım aşağıdaki komutları (10485760 = 1 MB) kullanarak
"appcmd.exe set config -section:system.webserver/serverruntime/uploadreadaheadsize: 10485760 /commit:apphost"
"cscript adsutil.vbs set w3svc/<APP_ID>/uploadreadaheadsize 10485760"
Ayrıca IIS Yöneticisi site açılıyor ve "Düzenleyici" Yönetimi altında.Yapılandırma giderek değerini ayarlamak için kullandım Ne yazık ki hala Talep Çok Büyük hata Varlık alıyorum ve gerçekten sinir bozucu olmaya başladı!
Bu yüzden herkes bu hatayı düzeltmek için deneyebilirsiniz ne biliyor mu?
CEVAP
IIS ama XML sorunu sorun değildir. Varsayılan olarak XML 65KB mesaj geniş mesaj ile hizmet saldırısı reddi önlemek için sınırlar. Ayrıca eğer MTOM kullanmasanız bile bayt gönderir[] string (boyutu 3 artış) = ^ base64 kodlanmış . 48KB * 1,33 = 64 KB
Bu sorunu çözmek için size hizmet büyük iletileri kabul edecek şekilde yapılandırmanız gerekir. Bu sorunu daha önce 400 Kötü İstek hatası kovdu ama bu tür bir hata için yeni versiyonda XML doğru durum kodu olan 413 kullanmaya başladı.
Senin bağlama maxReceivedMessageSize
ayarlamak gerekir. Ayrıca readerQuotas
kurmamız gerekiyor.
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding maxReceivedMessageSize="10485760">
<readerQuotas ... />
</binding>
</basicHttpBinding>
</bindings>
</system.serviceModel>
Günlük ham HTTP ASP.NET /yanıt MVC & I...
Böyle büyük mükafat Varlık Katalog Baş...
Alma "JSON isteği serisi için çok...
Büyük XML web service (400) Bad Reques...
Bir varlık gövdesini SİLİN HTTP isteği...