Выключите предупреждение о безопасности присоединения Visual Studio при отладке IIS

при использовании Visual Studio 2008 или 2010 при каждом подключении к IIS w3wp.exe вы получаете предупреждение безопасности Attach,

Как можно сделать это?

было бы здорово узнать также, Как сохранить его прикрепленным для linger, так как это, кажется, тайм-аут через некоторое время.

Btw: я добавил Это в качестве комментария к ответу ниже, Первое, что я сделал, это попробовать статью msdn http://msdn.microsoft.com/en-us/library/ms241736.aspx но это не так работа.

11 ответов


также найдено в статье, упомянутой Цури, но подытожить ответы в этой теме:

убедитесь, что Visual Studio не работает при изменении раздела реестра или он будет перезаписан при выходе со старым значением

измените (или создайте) следующий раздел реестра на 1:

Visual Studio 2008 HKEY_CURRENT_USER\Software\Microsoft\VisualStudio.0\Debugger\DisableAttachSecurityWarning

Visual Studio 2010 HKEY_CURRENT_USER\Software\Microsoft\VisualStudio.0\Debugger\DisableAttachSecurityWarning

Visual Studio 2012 HKEY_CURRENT_USER\Software\Microsoft\VisualStudio.0\Debugger\DisableAttachSecurityWarning

Visual Studio 2013 HKEY_CURRENT_USER\Software\Microsoft\VisualStudio.0\Debugger\DisableAttachSecurityWarning

Visual Studio 2015 HKEY_CURRENT_USER\Software\Microsoft\VisualStudio.0\Debugger\DisableAttachSecurityWarning

для VS2015 вам может потребоваться создать раздел реестра, упомянутый выше.

  1. убедитесь, что Visual Studio не запущена, и откройте редактор реестра.
  2. перейдите к HKEY_CURRENT_USER\Software\Microsoft\VisualStudio.0\Debugger щелкните правой кнопкой мыши и создайте новый DWORD:
    • имя: DisableAttachSecurityWarning
    • значение: 1.

обновление: если вы не хотите открывать regedit, сохраните это суть как *.reg-файл и запустите его (импортирует ключи для всех версий VS ниже VS2017).

Visual Studio 2017

конфигурация сохраняется в частном реестре, см. Этот ответ: https://stackoverflow.com/a/41122603/67910

на VS 2017 сохраните этот суть как *.ps1 файл и запустите его как admin, или скопируйте и вставьте следующий код в файл ps1:

#IMPORTANT: Must be run as admin

dir $env:LOCALAPPDATA\Microsoft\VisualStudio.* | % {
    #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
}

параметр реестра работает; однако вы должны убедиться, что вы установили его в 32-разрядной песочнице реестра для VS2005/2008 либо с помощью 32-разрядного regedit.exe в %windir%\SysWOW64\ или добавив его в HKLM\Software\Wow6432Node\.... Я создал .reg скрипт, который просто добавляет его в оба:

Windows Registry Editor Version 5.00

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

[HKEY_CURRENT_USER\Software\Wow6432Node\Microsoft\VisualStudio.0\Debugger]
"DisableAttachSecurityWarning"=dword:00000001

просто измените версию на 8.0 для 2005, 10.0 для 2010 и т. д.

Примечание: regedit на Windows 7, кажется, хочет .файлы reg сохраняются как UTF16-LE, поэтому, если вы сохраните их в a .reg файл, имейте в виду, что вам нужно сделать что.


Я смог заставить его работать на Windows 7. Сначала я изменил значение реестра, когда VS2008 все еще открыт. Затем я закрыл его и обновил редактор реестра и заметил, что значение было сброшено до 0. Затем я изменил его на 1 и начал VS2008. Теперь он работает нормально. Я попытался закрыть VS2008 и открыть его обратно, и значение реестра остается 1. Спасибо за вашу помощь


другие ответы в этом посте содержат правильную информацию, но у меня были проблемы с ее работой, поэтому это попытка сделать ответ очень явным. Эти инструкции работали для Visual Studio 2010 под управлением Windows 7 Ultimate 64-разрядной версии.

  • убедитесь, что экземпляры Visual Studio не запущены (используйте диспетчер задач для проверки команду devenv.exe)
  • добавить DWORD DisableAttachSecurityWarning значение реестра HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\X. X\Debugger и установите значение 1. Для Visual Studio 2008 замените X. X на 9.0, для 2010 использовать 10.0

причина, по которой я изо всех сил пытался получить эту работу, заключалась в том, что я пытался использовать HKEY_LOCAL_MACHINE вместо HKEY_CURRENT_USER. Мне пришлось прибегнуть к помощи Контролировать Процесс и немного фильтрации на 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.0\Debugger' -Name 'DisableAttachSecurityWarning' -Value 1 -PropertyType 'DWORD' -Force

вы можете изменить идентификатор iis AppPool на фактического пользователя windows, если это локальная машина.


ваш ответ доступен по адресу http://msdn.microsoft.com/en-us/library/ms241736.aspx

при отладке законных сценарий, который вызывает это предупреждение появляются, и хотят подавить его, там параметр реестра, который позволяет вам сделать это. Не забудьте повторно включить предупреждение после того, как вы закончите сценарий.


Это не прямой ответ на вопрос, но он обходит сообщение безопасности, а также обеспечивает более быстрый способ присоединения к ранее присоединенному процессу:

  • установить прикрепить расширение
  • прикрепить с помощью Reattach и сообщение обходится
  • повторное присоединение (Ctrl-R + Ctrl - [1-5]) к предыдущему процессу имеет то же преимущество

Powershell вариант...заменить $vsversion с версией, к которой вы хотите применить его.

Примечание: сохранить свою работу перед запуском. Все запущенные экземпляры VS будут остановлены. Если вы не завершите open VS instances-значение не будет сохранено.

$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

Итак, единственное, что будет работать для меня с Visual Studio 2010 на x64/Win7, - это обновление обоих узлов, включая Wow6432Node.

Windows Registry Editor Version 5.00

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

[HKEY_CURRENT_USER\Software\Wow6432Node\Microsoft\VisualStudio.0\Debugger]
"DisableAttachSecurityWarning"=dword:00000001

расширение Visual Studio доступно для VS2015 и VS2017: "Прикрепить Ко Всем Вещам":

enter image description here

вы можете привязать "Attach to IIS" к любому ключевому аккорду, который вам нравится, используя обычный процесс.


на powershell вариация, основанная на существующих ответах от Сливерниня и Мартина Холлингсворта. Это было протестировано с Visual Studio 2015 на с Win7/х64 окружающая среда. Сценарий попросит вас закрыть Visual 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!"
}