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

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

Как вы это сделаете?

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

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

Ответ 1

Также найден в статье, упомянутой 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 вам может потребоваться создать ключ реестра, указанный выше.

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

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

Visual Studio 2017

Конфигурация сохраняется в частном реестре, см. этот ответ: fooobar.com/questions/40484/...

Для VS 2017 сохраните gist как *.ps1 файл и запустить его как admin, или скопируйте и вставьте следующий код в файл 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
}

Ответ 2

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

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

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

ПРИМЕЧАНИЕ: regedit на Windows 7, похоже, хочет .reg файлы, сохраненные как UTF16-LE, поэтому, если вы сохраните их в .reg файле, имейте в виду, что вам нужно это сделать.

Ответ 3

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

Ответ 4

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

  • Убедитесь, что экземпляры 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. Мне пришлось прибегать к использованию 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

Ответ 5

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

Ответ 6

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

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

Ответ 7

Вариант Powershell... замените $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

Ответ 8

поэтому единственное, что будет работать для меня с Visual Studio 2010 на x64/Win7, - это обновление обоих узлов, включая 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

Ответ 9

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

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

Ответ 10

A powershell, основанный на существующих ответах SliverNinja и Martin Hollingsworth. Это было протестировано с помощью Visual Studio 2015 в среде win7/x64. script попросит вас закрыть 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!"
}