![](/img/trans.png)
[英]Win32Exception Not enough storage is available to process this command
[英]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.