Wie nicht abzubrechen http Antwort c #

Ich muss mehrere Methoden ausführen, nachdem ich eine Datei zum Herunterladen an einen Benutzer gesendet habe. Nachdem ich eine Datei an einen Benutzer gesendet habe, wird die Antwort abgebrochen und ich kann danach nichts mehr tunresponse.end().

Dies ist beispielsweise mein Beispielcode:

 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);

Also in diesem BeispielStartNextMethod undResponse.Redirect werden nicht ausgeführt.

Ich habe versucht, einen separaten Handler (ashx) mit dem folgenden Code zu erstellen:

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();
        }

und nenne es so:

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

aber der selbe fehler passiert. Ich habe versucht, Response.End durch CompleteRequest zu ersetzen, aber es hilft nicht.

Ich denke, das Problem ist, dass ich HttpContext.Current verwende, aber einen separaten Antwortstream verwenden sollte. Ist das korrekt? Wie mache ich das in einer separaten Methode im Allgemeinen? (Angenommen, mein Handler soll ein Byte-Array von Daten und Inhaltstypen akzeptieren und von einer separaten Antwort heruntergeladen werden. Ich möchte wirklich keine separate Seite für eine Antwort verwenden.)

AKTUALISIEREN
Ich habe immer noch keine gute Lösung gefunden. Ich möchte einige Aktionen ausführen, nachdem der Benutzer eine Datei heruntergeladen hat, ohne jedoch eine separate Seite für eine Antwort- / Anforderungssache zu verwenden.

Antworten auf die Frage(8)

Ihre Antwort auf die Frage