Le serveur ne peut pas effacer les en-têtes après les en-têtes HTTP ont été envoyés

Afin de télécharger un fichier que j'ai écrit le code suivant

[AcceptVerbs(HttpVerbs.Post | HttpVerbs.Get)] public ActionResult Download(string fileName) { 
    try { 
        string filepath = @"C:\shadow_copy.rar";

        Response.ClearHeaders();
        Response.Clear();
        Response.AddHeader("Content-Disposition", "attachment; filename= " + fileName.TrimEnd());
        Response.AddHeader("Content-Length", fileName.Length.ToString());
        Response.ContentType = "application/octet-stream";
        Response.WriteFile(filepath.TrimEnd());
        Response.End();

    }
    catch (Exception exp)
    {
        //
    }

    return Redirect("http://mysite.com");
}

J'ai également utilisé

if (!Réponse.IsRequestBeingRedirected) //ne Sera pas appelé Réponse.Redirect("http://www.google.com")

mais il montre l'erreur

"Ne peut pas rediriger après les en-têtes HTTP ont été envoyés."

  • Que voulez-vous accomplir? Pour télécharger un fichier ou rediriger l'utilisateur. Vous devez choisir l'un à l'autre.
InformationsquelleAutor Pankaj Saha | 2011-12-22