C # Response.WriteFile und Response.TransmitFile filesize Probleme

8

Ich habe eine 5Mb pdf auf dem Server, die diese Datei mit einem writeFile herunterlädt, gibt mir einen 15Mb Download, wo, wie die Übertragungsdatei die korrekte 5Mb Dateigröße gibt ...

Liegt dies an einer Art von Dekomprimierung im Speicher des WriteFile? Ich frage mich nur, ob jemand das gleiche passiert gesehen hat ...

(ps bemerkte es erst seit wir zu iis7 gegangen sind ??)

Code ist ...

%Vor%     
Pottman 21.01.2010, 16:01
quelle

2 Antworten

7

TransmitFile - Schreibt die angegebene Datei direkt in einen HTTP-Antwort-Ausgabestream, ohne sie im Speicher zwischenzuspeichern.

WriteFile - Schreibt die angegebene Datei direkt in einen HTTP-Antwort-Ausgabestream.

Ich würde sagen, der Unterschied tritt auf, weil die Übertragungsdatei es nicht zwischenspeichert. Write Datei verwendet Pufferung (Afiak), im Grunde vorübergehend hält die Daten vor der Übertragung, als solche kann es nicht die genaue Dateigröße erraten, weil es in Stücke zu schreiben.

    
kd7 21.01.2010 16:28
quelle
2

Sie können dies durch folgende Definition verstehen.

Response.TransmitFile VS Response.WriteFile:

  • TransmitFile: Diese Methode sendet die Datei an den Client, ohne sie in den Anwendungsspeicher auf dem Server zu laden. Es ist der ideale Weg, es zu benutzen, wenn die Dateigröße groß ist.

  • WriteFile: Diese Methode lädt die heruntergeladene Datei in den Speicher des Servers, bevor sie an den Client gesendet wird. Wenn die Dateigröße groß ist, könnte der ASPNET-Arbeitsprozess möglicherweise neu gestartet werden. *

Referenz: - TransmitFile VS WriteFile

    
Developer 19.05.2015 13:26
quelle

Tags und Links