在调试IIS时关闭Visual Studio Attach安全警告

rou*_*sis 159 iis iis-7 visual-studio-2010 visual-studio-2008 visual-studio

使用Visual Studio 2008或2010时,每次附加到IIS w3wp.exe时都会出现附加安全警告,

你怎么转这个?

如果知道如何保持它的徘徊,这将是很酷的,因为这似乎在一段时间后超时.

顺便说一句:我添加了这个作为对以下答案的评论,我做的第一件事是尝试msdn文章 http://msdn.microsoft.com/en-us/library/ms241736.aspx,但这不起作用.

Wie*_*sma 229

也可以在Tzury提到的文章中找到,但总结一下这个帖子中的答案:

确保在更改注册表项时Visual Studio未运行,或者在退出时使用旧值覆盖它

将以下注册表项更改(或创建)为1:

Visual Studio 2008 HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\9.0\Debugger\DisableAttachSecurityWarning

Visual Studio 2010 HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\10.0\Debugger\DisableAttachSecurityWarning

Visual Studio 2012 HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\Debugger\DisableAttachSecurityWarning

Visual Studio 2013 HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\12.0\Debugger\DisableAttachSecurityWarning

Visual Studio 2015 HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0\Debugger\DisableAttachSecurityWarning

对于VS2015,您可能需要创建上面引用的注册表项.

  1. 确保Visual Studio未运行,然后打开注册表编辑器.
  2. 导航到 HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0\Debugger,右键单击并创建一个新的DWORD:
    • 名称: DisableAttachSecurityWarning
    • 价值:1.

更新:如果您不想打开regedit,请将此要点保存为*.reg文件并运行它(导入低于VS2017的所有VS版本的密钥).

Visual Studio 2017

配置保存在私有注册表位置,请参阅以下答案:https://stackoverflow.com/a/41122603/67910

对于VS 2017,将此要点保存为*.ps1文件并以管理员身份运行,或将以下代码复制并粘贴到ps1文件中:

#IMPORTANT: Must be run as admin

dir $env:LOCALAPPDATA\Microsoft\VisualStudio\15.* | % {
    #https://stackoverflow.com/a/41122603
    New-PSDrive HKU Registry HKEY_USERS

    reg load 'HKU\VS2017PrivateRegistry\' $_\privateregistry.bin

    $BasePath='HKU:\VS2017PrivateRegistry\Software\Microsoft\VisualStudio'

    $keysResult=dir $BasePath
    $keysResult | ? {$_.Name -match '\\\d+\.\d+_[^_]+$'} | % {
        $keyName = $_.Name -replace 'HKEY_USERS','HKU:'
        New-ItemProperty -Path $keyName\Debugger -Name DisableAttachSecurityWarning -Value 1
    }
    $keysResult.Handle.Close()    

    [gc]::collect()

    reg unload 'HKU\VS2017PrivateRegistry'

    Remove-PSDrive HKU
}
Run Code Online (Sandbox Code Playgroud)

  • @ImranRizvi你需要确保它在进行注册表更改时没有运行,否则它将在退出时用旧值覆盖 (17认同)
  • 对于VS2012,密钥是HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\Debugger\DisableAttachSecurityWarning (10认同)
  • 这似乎也适用于Visual Studio 2010. (4认同)
  • VS 2017怎么样?调试器密钥完全丢失(大多数缺失) (4认同)
  • 看起来Visual Studio 2017保留了本地注册表,因此您必须更改此文件而不是全局注册表.我修复了附加安全警告只是编辑此本地注册表文件的问题.阅读此答案以获得更多解释:http://stackoverflow.com/a/41122603/692665 (4认同)
  • 对于 VS2019,这对我有用:https://www.davici.nl/blog/disable-visual-studio-2019-iis-security-attach-warning (2认同)

Chr*_*lly 13

注册表设置确实有效; 但是,您必须确保通过使用32位regedit.exe %windir%\SysWOW64\或将其添加到VS2005/2008的32位注册表沙箱中进行设置HKLM\Software\Wow6432Node\....我创建了一个.reg脚本,只是将它添加到两个:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\9.0\Debugger]
"DisableAttachSecurityWarning"=dword:00000001

[HKEY_CURRENT_USER\Software\Wow6432Node\Microsoft\VisualStudio\9.0\Debugger]
"DisableAttachSecurityWarning"=dword:00000001
Run Code Online (Sandbox Code Playgroud)

只需将版本更改为2005年的8.0,2010年的10.0等.

注意:Windows 7上的regedit似乎希望将.reg文件保存为UTF16-LE,因此如果将其保存为.reg文件,请注意您需要这样做.


Eri*_*ure 8

我能够在Windows 7上工作.我首先更改了VS2008仍然打开的注册表值.然后我关闭它并刷新注册表编辑器并注意到该值已重置为0.然后我将其更改回1并启动VS2008.它现在工作正常.我试图关闭VS2008并将其打开,注册表值保持为1.感谢您的帮助


Mar*_*rth 7

这篇文章中的其他答案包含正确的信息,但我在使其工作时遇到了问题,所以这是尝试使答案非常明确.这些说明适用于在Windows 7 Ultimate 64-Bit上运行的Visual Studio 2010.

  • 确保没有运行Visual Studio实例(使用任务管理器检查devenv.exe)
  • 将DWORD DisableAttachSecurityWarning注册表值添加到HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\XX\Debugger并将值设置为1.对于Visual Studio 2008,将XX替换为9.0,对于2010使用10.0

我努力让这个工作的原因是我使用HKEY_LOCAL_MACHINE而不是HKEY_CURRENT_USER来尝试这个.我不得不求助于使用Process Monitor和devenv上的一些过滤来识别我的错误.我怀疑HKLM值只有在你第一次打开Visual Studio之前设置它才会有任何影响.

任何打开的Visual Studio实例都会在关闭时覆盖您的更改,并且只有新实例才能在任何情况下获取该设置.

据我所知,使用Wow6432Node注册表似乎是不必要的.以下Powershell命令将应用Visual Studio 2010的步骤.

Get-Process -Name devenv* | ForEach-Object { Stop-Process $_.Id }
New-ItemProperty -Path 'HKCU:\Software\Microsoft\VisualStudio\10.0\Debugger' -Name 'DisableAttachSecurityWarning' -Value 1 -PropertyType 'DWORD' -Force
Run Code Online (Sandbox Code Playgroud)


Tót*_*tán 6

您可以将iis AppPool标识更改为您的实际Windows用户(如果它是本地计算机).