gpt4 book ai didi

asp.net-mvc - 如何以编程方式记录 MVC FileResult 的开始和结束以记录不完整的下载?

转载 作者:行者123 更新时间:2023-12-02 00:40:30 28 4
gpt4 key购买 nike

我一直在研究我的 ASP.NET MVC 应用程序如何记录不成功/不完整的下载。我有一个 Controller 处理当前返回 FileResult 的文件请求。我需要记录的是 IP 地址、文件名和下载开始时间,然后是相同的数据和完成时间。我已经查看了以 HttpModule 开始和结束的拦截请求以及 IIS7 失败的请求跟踪,但我不确定哪条路线是最好的并且感觉我可能错过了问题的明显答案。

有没有人有任何建议或知道任何替代方案,因为这似乎是许多人想从他们的网络服务器知道的东西?

谢谢你的帮助

最佳答案

您可以尝试编写自定义 FilePathResult并覆盖 WriteFileMethod :

public class CustomFileResult : FilePathResult
{
public CustomFileResult(string fileName, string contentType)
: base(fileName, contentType)
{ }

protected override void WriteFile(HttpResponseBase response)
{
// TODO: Record file download start
base.WriteFile(response);
// TODO: Record file download end
}
}

在你的 Controller 中:

public class HomeController : Controller
{
public ActionResult Index()
{
return new CustomFileResult(@"d:\test.jpg", "image/jpg");
}
}

关于asp.net-mvc - 如何以编程方式记录 MVC FileResult 的开始和结束以记录不完整的下载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2712510/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com