Adplus 转储创建失败 - 访问被拒绝

Posted

技术标签:

【中文标题】Adplus 转储创建失败 - 访问被拒绝【英文标题】:Adplus dump creation failed - access is denied 【发布时间】:2011-06-07 13:11:46 【问题描述】:

我正在尝试获取转储以调试 ASP.NET 进程(Windows 2003 R2 SP2 x64)中的一些内存问题:

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 上禁用了 ping 和故障保护,以防止 IIS 在 adplus 转储时终止进程。

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

【问题讨论】:

【参考方案1】:

这是因为不可访问内存读取失败。为避免这种情况,您可以使用 cdb/windbg 之类的工具并使用 .dump /mA 命令生成完整的内存转储。

.dump /mA.dump /ma 相同,只是它将忽略不可访问的内存读取失败并继续生成 minidump。

.dump options

/mA 选项等效于 /ma 除了它忽略任何失败 读取不可访问的内存并继续 生成小型转储。

HTH

【讨论】:

+1 听起来不错,谢谢!但是为什么会有无法访问的内存……只是有时?这样我不会得到部分(可能无用的)转储吗? 我认为内存可能已被分页,这是无法访问内存的原因。不,它不会给出部分转储。【参考方案2】:

如果您是 admin 的成员,您仍然需要提升权限。

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

【讨论】:

以上是关于Adplus 转储创建失败 - 访问被拒绝的主要内容,如果未能解决你的问题,请参考以下文章

创建ipc端口失败;在 MySQL Workbench 中访问被拒绝

如何获取已处理异常的故障转储?

创建组件“XX”失败,错误信息为:“SystemUnauthorizedAccessException”:对路径“...”的访问被拒绝

创建组件“XX”失败,错误信息为:“SystemUnauthorizedAccessException”:对路径“...”的访问被拒绝

访问被拒绝导致许可证存储的创建失败,请使用提升的权限

访问自省端点,失败:连接被拒绝 kong,keycload,OIDC