Problemy z Response.TransmitFile, Response.End i IE

Zajmuję się tworzeniem aplikacji ASP.NET, która w pewnym momencie wysyła plik do użytkownika za pomocą Response.TransmitFile.

Działa dobrze na moim komputerze dev, a kiedy wdrażam go na serwerach testowych, nadal działa na dwóch z nich; na jednym z serwerów (W2K3) działa tylko na Firefoksie, kiedy próbuję na IE7, pojawia się komunikat o błędzie „Internet Explorer nie może otworzyć pliku sendfile.aspx on (nazwa serwera)”.

Stworzyłem małą stronę aspx inline, aby powtórzyć problem, tutaj jest:

<%@ Page Language="C#" %>
<html><head>
<script language="CS" runat="server">
    void Page_Load(object sender, System.EventArgs e) 
    {
        string filePath = @"C:\temp\export.zip";
        Response.ClearHeaders();
        Response.ContentType = "application/zip";
        Response.Clear();
        Response.AppendHeader("Content-disposition", "attachment; filename=export.zip");
        Response.TransmitFile(filePath);
        Response.End();
    }
</script>
</head></html>

Próbowałem różnych rzeczy i zauważyłem, że to działa ponownie, jeśli skomentujęResponse.End line (ale AFAIK ta linia powinna tam być, przynajmniej według każdego przykładowego kodu znajdującego się w sieci)

Kolejną kwestią, którą zauważyłem, a która może, ale nie musi być powiązana, jest to, że również nie powiedzie się, jeśli usunę<html>, <head> i jego zamykające znaczniki.

Od jakiegoś czasu drapam się po głowie, czy ktoś ma jakiś pomysł, jak to zrobić?

questionAnswers(3)

yourAnswerToTheQuestion