Benutzer mit den meisten Antworten
WCF Service bricht HTTP Transport bei Übergabe von Streams ab ca. 1MB ab

Frage
-
Aufgabe ist ein FileUpload und anschließende Übergabe der Datei an einen WCF Service, der diese dann verwalten bzw. speichern soll.
Zunächst einmal war der FileUpload von der Größe her begrenzt.
Diesen habe ich vergrößern können (auf aktuell ca. 4 MB) durch diese Einstellung in der web.config:<system.web> <httpRuntime maxRequestLength="4096" requestLengthDiskThreshold = "4096" />
Ich kopiere dann die hochgeladene Datei in einen MemoryStream und übergebe diesen an einen WCF Service.
Das funktioniert noch für eine Datei mit einer Größe von 858 KB, bei Dateien von 2MB und 4MB nicht mehr.
Ich nehme an, die Grenze liegt also bei ca. 1MB.
Wo kann man das einstellen, dass man größere Datenmengen (als MemoryStream) transportieren kann ?Ich habe in den bindings sowohl des client als auch des service diese Einstellunegn hier und verwende diese:
<basicHttpBinding> <binding name="BasicHttpBinding" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" transferMode="Buffered"> <security mode="None" /> <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" /> </binding> </basicHttpBinding>
Da sind schon alle Parameter auf max gesetzt, aber es geht trotzdem nicht.
Bei zu großen Transporten kommt diese Exception:[WebException: Die Anfrage wurde abgebrochen: Die Anfrage wurde abgebrochen..]
System.Net.HttpWebRequest.GetResponse() +6038435
System.ServiceModel.Channels.HttpChannelRequest.WaitForReply(TimeSpan timeout) +48
[CommunicationException: Fehler (Die Anfrage wurde abgebrochen: Die Anfrage wurde abgebrochen..) beim Übertragen von Daten über den HTTP-Kanal.]
Ich benötige eigentlich beliebig große Transporte von MemoryStreams über den WCF Service.
Wie kann ich das erreichen bzw. wo kann ich das einstellen ?- Bearbeitet Robert BreitenhoferModerator Donnerstag, 12. August 2010 11:25 Formatierung
Antworten
-
Hallo Marc,
Aufgabe ist ein FileUpload und anschließende Übergabe der Datei an einen WCF Service, der diese dann verwalten bzw. speichern soll.
Zunächst einmal war der FileUpload von der Größe her begrenzt.
Diesen habe ich vergrößern können (auf aktuell ca. 4 MB) durch diese Einstellung in der web.config:schau mal hier:
http://blog.thomasbandt.de/39/2359/de/blog/iis-7x-uploadlimits-konfigurieren.html
Ggfs. hilft dir das, die noch fehlenden Einstellungen zu finden.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 12. August 2010 11:29
Alle Antworten
-
Hallo Marc,
Aufgabe ist ein FileUpload und anschließende Übergabe der Datei an einen WCF Service, der diese dann verwalten bzw. speichern soll.
Zunächst einmal war der FileUpload von der Größe her begrenzt.
Diesen habe ich vergrößern können (auf aktuell ca. 4 MB) durch diese Einstellung in der web.config:schau mal hier:
http://blog.thomasbandt.de/39/2359/de/blog/iis-7x-uploadlimits-konfigurieren.html
Ggfs. hilft dir das, die noch fehlenden Einstellungen zu finden.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 12. August 2010 11:29
-
Hallo Stefan,
danke für die Antwort.
Es hilft was, obwohl der Modus der Berechnung unverständlich bleibt.
Die zweite, dort beschriebene Einstellung unter <system.webserver> scheint nicht benötigt zu werden.
Es hat gereicht, diese Einstellungen hier, die ich schon hatte, zu erhöhen:<httpRuntime maxRequestLength="102400" requestLengthDiskThreshold="102400" />
Vorher hatte ich dort 4096 (KB) drin stehen.
Jetzt habe ich die Einstellungen aus dem blog übernommen.
Ich kann jetzt Dateien von 4 MB Größe (und auch mehr) transportieren, was vorher nicht ging.
Der Modus der Berechnung im Verhältnis zur Größe transportierter Dateien ist allerdings schwer nachvollziehbar.
Ich hatte angenommen, dass man für eine 4 MB Datei auch ca. 4096 (KB) an Einstellung benötigt.
Stattdessen benötigt man z.B. für 2,39 MB Dateigröße eine Einstellung von ca. 6000 (KB).
Also ungefähr ein Verhältnis von 1:3.
Trotzdem weiß ich jetzt, an welcher Schraube ich drehen muss und auch ungefähr, wie weit, insofern hat das sehr geholfen.
Vielen Dank,
Alexander Diestel- Bearbeitet Robert BreitenhoferModerator Donnerstag, 12. August 2010 11:28 Formatierung