Jak nie przerwać odpowiedzi http c #

Muszę uruchomić kilka metod po przesłaniu pliku do użytkownika w celu pobrania. Dzieje się tak, że po wysłaniu pliku do użytkownika odpowiedź jest przerywana i nie mogę już nic zrobićresponse.end().

na przykład to jest mój przykładowy kod:

 Response.Clear();
 Response.AddHeader("content-disposition", "attachment;  filename=test.pdf");
 Response.ContentType = "application/pdf";
 byte[] a = System.Text.Encoding.UTF8.GetBytes("test");
 Response.BinaryWrite(a);
 Response.End();
 StartNextMethod();
 Response.Redirect(URL);

W tym przykładzieStartNextMethod iResponse.Redirect nie są wykonywane.

Próbowałem stworzyć osobny program obsługi (ashx) z następującym kodem:

public void ProcessRequest(HttpContext context)
        {
            context.Response.Clear();
            context.Response.AddHeader("content-disposition", "attachment;  filename=test.pdf");
            context.Response.ContentType = "application/pdf";
            byte[] a = System.Text.Encoding.UTF8.GetBytes("test");
            context.Response.BinaryWrite(a);
            context.Response.End();
        }

i nazwij to tak:

Download d = new Download();
d.ProcessRequest(HttpContext.Current);
StartNextMethod();
Response.Redirect(URL);

ale ten sam błąd się zdarza. Próbowałem zamienić Response.End na CompleteRequest, ale to nie pomaga.

Myślę, że problem polega na tym, że używam HttpContext.Current, ale powinienem użyć oddzielnego strumienia odpowiedzi. Czy to jest poprawne? jak mam to zrobić w oddzielny sposób ogólnie (załóżmy, że chcę, aby mój program obsługi akceptował tablicę bajtów danych i typu treści i można go było pobrać z osobnej odpowiedzi. Naprawdę nie chcę używać osobnej strony do odpowiedzi).

AKTUALIZACJA
Nadal nie znalazłem dobrego rozwiązania. Chciałbym wykonać pewne czynności po pobraniu pliku przez użytkownika, ale bez użycia osobnej strony do odpowiedzi na żądanie.

questionAnswers(8)

yourAnswerToTheQuestion