诊断"没有足够的存储空间来处理此命令"例外

时间:2014-06-03 19:17:17

标签: c# windows .net

当我的文件复制过程间歇性失败时,我应该捕获哪些信息" System.IO.IOException:没有足够的存储空间来处理此命令。"异常?

这个过程已经成功运行了多年,但在过去的一周里一直在失败。 IT人员向我保证服务器环境中没有任何变化。

文件复制服务,.Net 3.5 Windows服务,是为"任何CPU"而构建的控制台应用程序。平台,在Windows Server 2008 R2 64位计算机上以域用户的身份运行。它将文件从源共享复制到目标共享。

源共享位于Windows Server 2008 R2标准64位SP1计算机上。

目标共享位于Windows Server 2008 Enterprise 32位SP2计算机上。它有超过1TB的可用空间,被复制的文件是小pdf(大约18k)。

复制文件的代码行是:

System.IO.File.Copy("\\SourceShare\folder\file.pdf", "\\DestinationShare\folder\file.pdf", true);

当此调用失败时,使用" System.IO.IOException:没有足够的存储空间可用于处理此命令。"例外,我应该捕获哪些环境信息来帮助我诊断问题?

P.S。以下是在典型异常期间捕获块中捕获的一些数字。看到任何暗示"没有足够存储空间的原因"错误?

nonpagedSystemMemorySize64 = 43 kb 
pagedMemorySize64 = 330,680 kb 
pagedSystemMemorySize64 = 248 kb 
peakPagedMemorySize64 = 449,196 kb 
peakVirtualMemorySize64 = 825,024 kb 
peakWorkingSet64 = 442,792 kb 
privateMemorySize64 = 330,680 kb 
virtualMemorySize64 = 818,048 kb 
workingSet64 = 324,360 kb 
totalProcessorTime = 00:11:05.3442650 
userProcessorTime = 00:08:14.1019673 
privilegedProcessorTime = 00:02:51.2422977 
handleCount = 316 
gcTotalMemory = 266,652 kb 

1 个答案:

答案 0 :(得分:0)

如果您确定服务器上有可用空间并且您确信自己拥有正确的权限,那么我建议您检查IRP Stacksize。

由于NonPagedPool和PagedPool利用率很高,可能会发生这种情况。

文章介绍了如何更改Windows Server 2003及更低版本的IRPStack大小: http://support.microsoft.com/kb/285089

这应该适用于Windows Server 2008,但我不确定。