2012-08-06 5 views
6

2K8R2 dev sunucusunda dağıtılan ve IIS 7.5 altında barındırılan bir WCF 4.0 hizmetim var. Yerel olarak bir test uygulamasından (WPF) arıyorum. Ben bir 23MB (veya daha büyük) dosya göndermeye çalışırken aşağıdaki hatayı aldığım büyük dosyaları (bayt dizisi aracılığıyla) göndererek bir sorunla karşılaşıyorum. ///FileStorageClone/FileStorage.svc mesajı kabul edebileceğini belirterek: WCF daha büyük dosyalar için uçbirim dinlemiyor

http dinlemesibüyük uç nokta yoktu. Bu genellikle yanlış bir adres veya SOAP eyleminden kaynaklanır. Varsa, daha fazla ayrıntı için InnerException bölümüne bakın.

En çok 19MB çalışır. Zaman aşımı ayarlarını çektim ve web.config dosyasında 2GB'de maksimum arabellek, alınan mesaj ve dizi boyutlarını belirledim. Özel durum neredeyse anında atılır (zaman aşımına uğramayacak kadar uzun değil).

Bu, basicHttpBinding kullanarak çalışıyor, ancak bu sonraki adımlar diğer ciltleme türleri olacak.

Bağlantıları önce küçük dosyalar ile çalıştım, sonra da daha büyüklere taşıdım. 64KB'de maksimum arabelleğe koştum ve mesaj boyutlarını aldım. 4MB'de httpRuntime'ı system.Web altında varsayılan 4GB değerinden çarpmam gerektiğini öğrendim.

Bana bir IIS veya site düzeyinde sorun gibi geliyor. Nerede eksik olduğum hakkında bir fikrin var mı?

cevap

14

Bu, IIS düzeyindeki bir ayardır. Web.config veya appcmd.exe aracılığıyla requestFiltering ayarlama iki uygun seçenek vardır. için

<system.webServer> 
    <security> 
     <requestFiltering> 
     <requestLimits maxAllowedContentLength="2200000000" /> 
     </requestFiltering> 
    </security> 
    </system.webServer> 

Teşekkür: web.config aşağıdaki örnek 2,2 milyar bayt sınır ayarlar appcmd.exe aracılığıyla http://www.dantor.com/support/misc/web-config-requestFiltering-user-agent.aspx

Ayrıca bkz: http://forums.iis.net/t/1066272.aspx