我正在尝试为Windows Server 2012 R2上崩溃的IIS / .NET进程创建崩溃转储文件。
我已将以下PowerShell脚本编写为代码部署的一部分,该代码对于本地开发正常工作,但是在应用程序服务器上设置了相同的注册表项,则不会创建转储文件。我已经检查了注册表和收集文件夹上SYSTEM
的权限,它们似乎是正确的,因此我不确定为什么不生成转储文件。
在服务器上运行一个测试应用程序,该应用程序除了通过堆栈溢出而崩溃外,什么都不做,只会生成一个应用程序弹出窗口,但不会生成转储文件。
我尝试了给定here的所有可能的解决方案,但没有一个解决了问题。
$dumpFolder = "C:\crash-dumps"
if (!(Test-Path $dumpFolder)) {
mkdir $dumpFolder | Out-Null
}
$dumpKey = "HKLM:SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps"
if (!(Test-Path $dumpKey)) {
New-Item -Path $dumpKey | Out-Null
}
$dumpKey = "HKLM:SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\dotnet.exe"
New-Item -Path $dumpKey -Force | Out-Null
New-ItemProperty -Path $dumpKey -Name DumpFolder -Value $dumpFolder -PropertyType String -Force | Out-Null
New-ItemProperty -Path $dumpKey -Name DumpCount -Value 3 -PropertyType DWORD -Force | Out-Null
New-ItemProperty -Path $dumpKey -Name DumpType -Value 2 -PropertyType DWORD -Force | Out-Null
$dumpKey = "HKLM:SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\w3wp.exe"
New-Item -Path $dumpKey -Force | Out-Null
New-ItemProperty -Path $dumpKey -Name DumpFolder -Value $dumpFolder -PropertyType String -Force | Out-Null
New-ItemProperty -Path $dumpKey -Name DumpCount -Value 3 -PropertyType DWORD -Force | Out-Null
New-ItemProperty -Path $dumpKey -Name DumpType -Value 2 -PropertyType DWORD -Force | Out-Null