Tengo que desencadenar descargas de archivos de gran tamaño a un navegador web, donde creo el archivo para transferirlo al servidor y luego lo elimino inmediatamente. He encontrado suficientes ejemplos para ver que probablemente debería utilizar Response.TransmitFile o Response.WriteFile ... pero he oído que hay problemas con ambos:WriteFile vs TransmitFile para archivos de gran tamaño que deben eliminarse del servidor después de la transferencia
WriteFile es síncrono, pero almacena el archivo en memoria antes de enviarlo para el usuario. Como estoy lidiando con archivos muy grandes, esto podría causar problemas.
TransmitFile no almacena en búfer localmente, por lo que funciona para archivos grandes, pero es asíncrono, por lo que no puedo eliminar el archivo después de llamar a TransmitFile. Aparentemente, descargar el archivo no garantiza que pueda eliminarlo tampoco?
¿Cuál es la mejor forma de lidiar con esto?
También está la BinaryWrite ... ¿podría recorrer un flujo de archivos, copiándolo en segmentos?