c# - 仅在下载后计算一次下载

标签 c# asp.net download ashx

我们有提供下载的代码:

public class downloadRelease : IHttpHandler {

    public void ProcessRequest (HttpContext context) {

        -- snip --

        context.Response.Clear();
        context.Response.ContentType = "application/octet-stream";
        context.Response.AddHeader("Content-Disposition", "attachment; filename=" + OriginalFileName);
        context.Response.WriteFile(Settings.ReleaseFileLocation + ActualFileName);

        // Log download
        Constructor.VersionReleaseDownload.NewReleaseDownload(ActualFileName);

它工作正常,除了日志下载代码似乎在下载开始时就运行,而不是像我们预期的那样在下载完全完成时运行。

有人可以解释这是为什么吗?如何更改它以便它只在完成时记录?我们不想计算部分下载。

最佳答案

blog post与您的问题完全相同,也有解决方案。

Response.Buffer = false;
Response.TransmitFile("Tree.jpg");
Response.Close();
// logging here

关于c# - 仅在下载后计算一次下载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7534150/

相关文章:

c# - 我破坏了封装吗?

asp.net - 如何使用 ASP.NET 在 GridView 中创建滚动

node.js - 通过请求在 Node.js 中获取下载进度

c# - 如何使用 LINQ 从 DataTable 中删除行?

r - download.file损坏了R中的.mp3文件

github - 是否有用于下载最新版本存储库中的文件的 GitHub 链接?

c# - XSLT 条件排序

c# - OnCheckedChanged 事件未触发

c# - 继承自 System.ValueType

c# - Microsoft.VisualStudio.Web.Host.exe 使用 Visual Studio 2012/WIn7 锁定 32 位进程