我有一个.Net程序,作为其中一个函数,从用户指定的目录中获取一个文件并将其放入另一个特殊的目录中,该目录通过UNC指定(可能是也可能不是本地的)。我不会在这段代码中打开这些文件中的任何文件。
我遇到了这个奇怪的错误,在Windows Server 2003 SP2虚拟机上,此程序在移动到本地文件夹时随机执行一次硬中止。它终止了。没有例外,没有记录,并且它似乎不会在任何特定时刻发生。我无法在我的开发机器上重现这个问题,而且它似乎只发生在大约一兆字节左右的特定类型文件的副本中。使用非常相似的代码将其他格式复制到不同的目录,所有代码都更小,并且它们工作正常。
为什么Windows .Net程序会像这样严重中止?我该怎么做才能解决它?
答案 0 :(得分:0)
我猜一个网络故障,因为你提到“通过UNC指定(可能是也可能不是本地的)”。
如果这是一个选项,我会改变程序以添加文件复制操作的日志记录。
您尝试复制时尝试过“netstat”吗?这可能会告诉您是否阻止了防火墙端口。
答案 1 :(得分:0)
.NET运行时将fail fast并关闭应用程序,而不另行通知堆栈溢出。但是,这应该在服务器的事件日志中生成一个条目。您是否在代码中使用任何类型的递归或分配大型数组等可能导致堆栈溢出?
答案 2 :(得分:0)
我会换一行。如果它只是在本地保存文件会发生什么? 它仍然在这张图片中失败了吗?您可以将这部分代码复制并粘贴到您的问题中吗?
答案 3 :(得分:0)