繁体   English   中英

诊断“没有足够的存储空间来处理此命令”异常

[英]Diagnose “Not enough storage is available to process this command” exception

当文件复制过程间歇性地失败并显示“ System.IO.IOException:没有足够的存储空间来处理此命令”时,我应该捕获什么信息。 例外?

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

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

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

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

复制文件的代码行是:

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

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

PS这是典型异常期间在catch块中捕获的一些数字。 看到任何暗示“存储空间不足”错误的原因了吗?

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 

如果您确定服务器上有可用空间,并且绝对确定您具有正确的权限,那么建议您检查IRP Stacksize。

这可能是由于NonPagedPool和PagedPool利用率高所致。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM