【问题标题】:Is it possible to know which of .NET code created a temporary file?是否有可能知道哪个 .NET 代码创建了临时文件?
【发布时间】:2023-04-08 15:32:01
【问题描述】:

我正在查看 Windows Azure Web 角色 VM,我看到运行角色有效负载的进程的临时文件夹包含数十个很久以前创建的零长度临时文件。这对我来说是一个潜在的问题,因为如果文件被创建并以不受控制的方式遗留下来,角色就会在某个时候被丢弃。

我完全控制了负载代码,这些临时文件很有可能是由运行负载的同一进程创建的。

是否可以拦截在与创建文件的进程相同的进程中运行的 C# 代码创建的临时文件?

【问题讨论】:

  • 您是否在询问如何验证临时文件是否是从您的特定进程创建的,如何停止,或两者兼而有之?首先,请查看Sysinternals Process Monitor,不特定于 .NET。至于如何阻止它,就个人而言,我通常会首先更仔细地研究它们是如何以及为什么被创建的,所以我对此没有答案,至少现在没有。
  • @hvd:不,我想要为每个这样的创建创建一个调用堆栈,以便我知道这是我的代码(然后我修复它)还是主机代码(然后我要求微软修复它)。
  • 我认为 procmon 可以捕获托管调用堆栈。它可以肯定(而且总是如此)捕获当地人。

标签: c# .net file temporary-files


【解决方案1】:

您为什么不使用调试器(远程/其他方式)和实时转储来获取此信息?

你可以试试

  • 通过使用额外信息标记您自己的文件创建来消除(例如,将它们的名称写入日志文件,为每个写入的文件创建 .tag 文件等)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-20
    • 1970-01-01
    • 1970-01-01
    • 2020-10-16
    • 2012-08-15
    • 2011-05-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多