Вы можете создать обработчик (.ashx) и передавать через него временный файл. Таким образом, вы будете знать, что файл был передан клиенту, и вы можете удалить временный файл в конце обработчика.
Возможная проблема заключается в том, что клиент не сможет загрузить файл дважды, поскольку вы немедленно удаляете его. (Который затем можно было бы уменьшить, используя кэш вывода страницы ...)
Хотя лучше всего было бы, если бы вы могли избежать проблемы с временным файлом повсюду и вывести файл по запросу, генерируя его в обработчике ...