debuggingIIS时closuresVisual Studio附加安全警告

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

你怎么翻这个?

这也是很酷的知道,如何保持它的stream连忘返,因为这似乎在一段时间后超时。

顺便说一句:我添加这个作为评论下面的答案,我做的第一件事是尝试MSDN文章http://msdn.microsoft.com/en-us/library/ms241736.aspx ,但没有奏效。

在Tzury提到的文章中也发现,但总结了这个线程的答案:

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

更改(或创build)以下registry项为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,您可能需要创build上面引用的registry项。

  1. 确保Visual Studio没有运行,并打开registry编辑器。
  2. 导航到HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0\Debugger ,右键单击并创build一个新的DWORD
    • 名称: DisableAttachSecurityWarning
    • 价值: 1

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

Visual Studio 2017

configuration保存在一个私人的registry位置,看到这个答案: https : //stackoverflow.com/a/41122603/67910

对于VS 2017 ,将这个要点保存为* .ps1文件并以pipe理员身份运行,或将以下代码复制并粘贴到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 } 

registry设置确实有效; 但是,您必须确保通过使用%windir%\SysWOW64\的32位regedit.exe或将它添加到HKLM\Software\Wow6432Node\...下,将其设置在VS2005 / 2008的32位registry沙盒中HKLM\Software\Wow6432Node\... 我创build了一个.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 

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

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

我能够使它在Windows 7上工作。我已经第一次改变了VS2008仍然打开的registry值。 然后我closures它,并刷新registry编辑器,并注意到值被重置为0.然后,我把它改回1,并开始VS2008。 现在工作正常。 我试图closuresVS2008 ans打开它,registry值保持1.感谢您的帮助

在这篇文章中的其他答案包含正确的信息,但我有问题得到它的工作,所以这是一个非常明确的答案的尝试。 这些说明适用于在Windows 7 Ultimate 64位上运行的Visual Studio 2010。

  • 确保没有运行Visual Studio实例(使用任务pipe理器检查devenv.exe
  • 将DWORD DisableAttachSecurityWarningregistry值添加到HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ XX \ Debugger ,并将该值设置为1 。 对于Visual Studio 2008用9.0replaceXX,对于2010用10.0

之所以我努力得到这个工作,是我试图使用HKEY_LOCAL_MACHINE而不是HKEY_CURRENT_USER。 我不得不求助于使用Process Monitor和devenv过滤来识别我的错误。 如果在第一次打开Visual Studio之前设置HKLM值,我怀疑它只有任何影响。

Visual Studio的任何打开的实例将在closures时覆盖所做的更改,并且只有新实例才能在任何情况下提取设置。

据我所知,使用Wow6432Noderegistry似乎是不必要的。 以下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 

如果是本地计算机,则可以将iis AppPool标识更改为实际的Windows用户。

您可以在http://msdn.microsoft.com/en-us/library/ms241736.aspx上find答案;

如果您正在debugging导致此警告出现的合法scheme,并且想要禁止它,则会有一个registry设置,允许您执行此操作。 请记住在完成场景后重新启用警告。

Powershell变体…用你想要应用它的版本replace$vsversion

注意 :在运行之前保存你的工作。 所有正在运行的VS实例将被停止。 如果你没有打开VS实例 – 值将不会被保留。

 $vsversion = "12.0" # VS 2013 (optionally 11, 10, 9, etc.) kill -name devenv # end any existing VS instances (required for persisting config change) Get-ItemProperty -Path "HKCU:\Software\Microsoft\VisualStudio\$vsversion\Debugger" -Name DisableAttachSecurityWarning -ErrorAction SilentlyContinue # query value (ignore if not exists) Set-ItemProperty -Path "HKCU:\Software\Microsoft\VisualStudio\$vsversion\Debugger" -Name DisableAttachSecurityWarning -Value 1 # assign value 

所以,在x64 / Win7上使用Visual Studio 2010的唯一方法就是更新两个节点,包括Wow6432Node。

 Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\10.0\Debugger] "DisableAttachSecurityWarning"=dword:00000001 [HKEY_CURRENT_USER\Software\Wow6432Node\Microsoft\VisualStudio\10.0\Debugger] "DisableAttachSecurityWarning"=dword:00000001 

这不是对问题的直接回答,而是绕过了安全信息,也提供了一种更快的方法来附加到以前附加的过程:

  • 安装重新附加扩展
  • 附加使用重新附加,并且消息被绕过
  • 重新附加(Ctrl-R + Ctrl- [1-5])到以前的过程具有相同的好处

基于SliverNinja和Martin Hollingsworth现有答案的PowerShell变体。 这已经在win7 / x64环境下使用Visual Studio 2015进行了testing。 脚本会要求你closuresVisual Studio,如果它正在运行(不会试图杀死它)。

 $vsversion = "14.0" # VS 2015 (optionally 12, 11, 10, 9, etc...) $disable = 1 # set to 0 to enable the warning message # not using Get-Process here because powershell instance can be 64 bit and devenv is 32 bit if (!(get-wmiobject win32_process -filter "name='devenv.exe'")) { # Create or (force) update the property New-ItemProperty -Path "HKCU:\Software\Microsoft\VisualStudio\$vsversion\Debugger" -Name DisableAttachSecurityWarning -Value $disable -PropertyType 'DWORD' -Force Write-Host Done! } else { Write-Error "Please close Visual Studio first!" }