2012-08-06 3 views
6

Ich habe einen WCF 4.0-Dienst auf einem 2K8R2-Entwicklungsserver implementiert und unter IIS 7.5 gehostet. Ich rufe es lokal von einer Test-App (WPF). Ich stehe auf ein Problem beim Senden von großen Dateien (über ein Byte-Array), wo ich den folgenden Fehler beim Senden einer 23 MB (oder größer) Datei erhalten.WCF kein Endpunkt, der auf größere Dateien wartet

Es gab keinen Endpunkt bei http hören: ///FileStorageClone/FileStorage.svc dass die Nachricht annehmen könnte. Dies wird oft durch eine falsche Adresse oder SOAP-Aktion verursacht. Weitere Informationen finden Sie unter InnerException, falls vorhanden.

Bis zu 19 MB funktioniert gut. Ich habe die Timeout-Einstellungen erhöht und Max Puffer, empfangene Nachrichten und Array-Größen alle bei 2 GB in der Datei web.config festgelegt. Die Ausnahme wird fast sofort ausgelöst (nicht lange genug, um das Zeitlimit überschritten zu haben).

Es läuft mit basicHttpBinding, obwohl als erstarrte nächste Schritte wird andere Bindungstypen sein.

Ich habe zuerst die Verbindungen mit kleinen Dateien ausgearbeitet, dann zu größeren verschoben. Bei 64KB lief ich in Max-Puffer und erhielt Nachrichtengrößen. Bei 4MB habe ich gelernt, dass ich die httpRuntime unter system.Web vom Standard 4GB Wert erhöhen musste.

Es fühlt sich wie ein IIS oder Site-Level-Problem für mich an. Irgendeine Idee, wo ich fehlen könnte?

Antwort

14

Es scheint, dass dies eine Einstellung mehr auf der IIS-Ebene ist. Die Einstellung requestFiltering in der Datei web.config oder über appcmd.exe sind zwei praktikable Optionen. In der web.config das folgende Beispiel die Grenze auf 2,2 Milliarden Bytes setzt:

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

Dank: http://www.dantor.com/support/misc/web-config-requestFiltering-user-agent.aspx

Auch über appcmd.exe finden Sie unter: http://forums.iis.net/t/1066272.aspx

Verwandte Themen