2011-06-07 47 views
2

我试图获取转储调试在ASP.NET进程一些内存的问题(的Windows 2003 R2 SP2 64位):ADPlus的转储创建失败 - 访问被拒绝

adplus -hang -o f:\dumps -pn w3wp.exe -quiet 

有九个的w3wp.exe (全部来自不同的网站)。每次我在运行ADPlus如上的一些垃圾场的失败,此错误:

WriteFullMemory.Memory.Read(0x100ea0000, 0x10000) failed 0x80070005, ABORT. 
Dump creation failed, Win32 error 0n5 
    "Access is denied." 

的失败似乎是随机的(或者我应该说我找不到原因),即有时某些进程转储罚款,有时他们因这个错误而失败。事情我检查:

  • 我有完全管理权限
  • 有目标硬盘
  • 我禁用爆震和IIS故障保护,以防止IIS查杀流程,同时ADPlus的倾销足够空间。

还有什么我应该检查的?有其他人遇到这个问题吗? Adplus版本是7.01.002(02/27/2009)(几天前从最新的SDK下载)

回答

2

这是因为无法访问内存读取失败。为了避免这种情况,你可以使用类似cdb/windbg的命令并使用.dump /mA命令来生成完整的内存转储。

.dump /mA.dump /ma相同,只是它会忽略无法访问的内存读取失败并继续生成小型生成。

.dump options

The /mA option is equivalent to /ma except that it ignores any failure to read inaccessable memory and continues generating the minidump.

HTH

+0

+1听起来不错,谢谢!但是为什么会有无法访问的内存......有时候呢?我不会以这种方式获得部分(可能无用的)转储吗? – 2011-06-07 13:47:58

+0

我认为内存可能已被分页,这是无法访问内存的原因。不,它不会给予部分转储。 – Naveen 2011-06-07 13:57:53

1

如果你是管理员的一员,你仍然需要提升权限它不会不管。

ADPlus需要从具有提升特权的本地管理员帐户下运行的命令提示符运行。如果你没有这样做,转储文件可能不会被创建。