【问题标题】:Program Terminates On File Move程序在文件移动时终止
【发布时间】:2009-02-16 04:58:38
【问题描述】:

我有一个 .Net 程序,作为其功能之一,它从用户指定的目录中获取一个文件,并将其放入另一个通过 UNC 指定的特殊目录(可能是本地的,也可能不是本地的)。我没有在这部分代码中打开任何这些文件。

我遇到了一个奇怪的错误,在 Windows Server 2003 SP2 VM 上,该程序在移动到本地文件夹时随机执行硬中止。它只是终止。没有例外,没有日志记录,而且它似乎不会在任何特定时刻发生。我无法在我的开发机器上重现这个问题,而且它似乎只发生在复制大约 1 兆字节左右的特定类型文件期间。还有其他格式使用非常相似的代码复制到不同的目录,都更小,而且工作正常。

为什么 Windows .Net 程序会像这样硬中止?我能做些什么来解决它?

【问题讨论】:

  • 所以事件日志中没有任何内容?嗯。硬件问题??
  • 目标本地文件夹是使用 UNC 指定的吗?是否可以使用普通路径指定,是否有同样的问题?您使用什么虚拟机软件来托管 VM?

标签: .net windows debugging


【解决方案1】:

.NET 运行时将fail fast 关闭应用程序,而不会进一步通知堆栈溢出。但是,这应该会在服务器的事件日志中生成一个条目。您是否在代码中使用了任何可能导致堆栈溢出的递归或分配大型数组等?

【讨论】:

    【解决方案2】:

    我猜是网络故障,因为您提到“通过 UNC 指定(可能是本地的,也可能不是本地的)”。

    如果这是一个选项,我会更改程序以添加文件复制操作的日志记录。

    您是否尝试在尝试复制时执行“netstat”?这可以告诉您防火墙端口是否被阻止。

    【讨论】:

    • 网络故障是可能的,尽管该文件夹应该是本地的。但是,如果它在 99% 的时间内都有效,它会是文件夹权限吗?
    • 正确,如果它在 99% 的时间内都有效,我不会猜测文件夹权限是原因。添加一些日志记录以帮助诊断网络问题。
    【解决方案3】:

    我会改变一行。如果它只是将文件保存在本地会发生什么? 在这张图片中它仍然失败吗?您可以将这部分代码复制并粘贴到您的问题中吗?

    【讨论】:

      【解决方案4】:

      您检查过事件日志吗?是否有防病毒程序弄乱它?它会被 DAP 感染吗?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-04-14
        • 1970-01-01
        • 2017-03-05
        相关资源
        最近更新 更多