2011-03-24 98 views
3

我有一堆机器上运行大型应用程序。每5分钟复制一个文件对其进行一些操作。C#File.Copy没有足够的配额

代码工作顺利的时候,几乎99.9%,但每隔几个小时一次我可能会错误在这里讨论。

下面的代码:

try 
{ 
    File.Copy(fullPathName, readPathName, true); 
} 
catch (Exception exception) 
{ 
.... 
} 

此代码在自己的线程运行,但只应在运行这些线程之一。这是我得到的错误:

尝试创建.tmp文件时遇到意外的异常。没有足够的配额可用于处理此命令。

在System.IO .__ Error.WinIOError(的Int32的errorCode,字符串maybeFullPath) 在System.IO.File.InternalCopy(字符串sourceFileName,字符串destFileName,布尔改写) 在System.IO.File.Copy(字符串sourceFileName ,字符串destFileName,布尔覆盖) 在....

+0

我们得到了您的堆栈跟踪的一部分,但实际的错误似乎缺少。 – 2011-03-24 06:34:03

+0

哎呀,对不起。固定 – 2011-03-24 06:38:22

+0

配额可以是用户空间或用户内存。检查用户和正在使用的驱动器上是否有任何限制设置。 – CodingBarfield 2011-03-24 11:08:45

回答

2

Not enough quota is available to process this command意味着你的系统资源低的运行做到这一点。很难说出问题究竟是什么,但几乎可以确定你的代码没有什么可以做,但重试该操作。

+0

出的所有迄今为止的答案,这对我来说似乎最合乎逻辑。配额(在文件I/O的情况下)可能指的是用户可用的磁盘空间。尽管没有更多细节很难说出问题所在。 – 2011-03-24 06:51:15

+0

@Jeff:实际上,如果低配额指的是磁盘空间,我敢肯定它会显示为“完整磁盘”类型的错误。在这种情况下,我认为这可能是指某种页面/非页面池短缺或类似的东西。 – Gabe 2011-03-24 06:53:16

+0

我不确定。我认为“全盘”空间错误会导致误导。由于磁盘实际上并不是完整的,因此您(用户)不允许再写入它,因为您超出了配额。这似乎比其他任何人都更可能。但这一切都是我的猜测,希望新会给我们提供更多关于这个问题的细节。 – 2011-03-24 07:02:06

0

请检查写入文件的权限。这可能是由于创建或覆盖文件的用户权限不足造成的。

0

检查,如果你的文件不被其他进程锁定。您可以轻松地Process Explorer