TransmitFile 产生文件大小错误的损坏文件

TransmitFile yielding a corrupt files with wrong filesize

我有以下方法可以在访问页面时下载文件。问题是它似乎产生了带有添加字节的文件,根据文件类型可能会使文件损坏。我有以下方法:

Public Class GetImage
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        'snipped unimportant code
        Dim fileSize = New FileInfo(filepath).Length
        Response.Clear()
        Response.AddHeader("content-length", fileSize.ToString())
        Response.ContentType = "application/octet-stream"
        Response.AppendHeader("content-disposition", "attachment; filename=" & DisplayName)
        Response.TransmitFile(filepath)
    End Sub
End Class

例如,当使用上述方法下载大小为 177030xlsm 文件时,下载的文件大小为 177710 并在以下位置损坏(但可修复) Excel。它似乎总是添加 680 字节。

我试过用 WriteFile 替换 TransmitFile。将 TransmitFile 中的长度设置为从 FileInfo 中正确检索的实际文件大小。我还查看了不同的文件,并且在服务器本地和本地都尝试了 运行;结果都一样。

方法末尾缺少Response.Flush()