Ich hatte mich zum Thema vor einem Jahr bereits ausgelassen und in den Kommentaren Kritik eingesteckt, berechtigt. Da ich das aber in einem Projekt bis heute nicht geändert hatte und man ja schnell mal Kleinigkeiten im Eifer des Gefechts mit Copy&Paste übernimmt, musste ich diese falsche Vorgehensweise damit bezahlen, dass ich sogar den Webserver abschießen musste.
Was war passiert? Das was passieren musste. Ein Download-Portal mit sehr großen Dateien, ein Mailing an die Kunden und ein Download-Handler, der die zu ladenden Dateien in den Speicher schreibt und das auch noch in einem Rutsch. Irgendwann stand der Application Pool dann bei 7 Gigabyte RAM und das war's dann ...
Lange Rede kurzer Sinn: bei der neuerlichen Recherche bin ich über eine Methode im Response-Objekt gestoßen, die ich bisher völlig übersehen hatte und die das Problem sehr elegant löst: Response.TransmitFile().
Aus der MSDN: "Writes the specified file directly to an HTTP response output stream without buffering it in memory."
Ressourcen-schonender kann man wahrlich kaum arbeiten.