Отключите предупреждение безопасности Visual Studio Attach при отладке IIS
При использовании Visual Studio 2008 или 2010 при каждом подключении к IIS w3wp.exe выдается предупреждение о безопасности подключения,
Как вы включаете это?
Было бы здорово знать также, как держать это прикрепленным для задержания, поскольку это, кажется, истекает через некоторое время.
Кстати, я добавил это в качестве комментария к ответу ниже, первым делом я попробовал статью msdn http://msdn.microsoft.com/en-us/library/ms241736.aspx но это не сработало.
11 ответов
Также в статье упоминается Цуры, но для подведения итогов ответы в этой теме:
убедитесь, что 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, сохраните этот список как файл *.reg и запустите его (импортирует ключи для всех версий VS ниже VS2017).
Visual Studio 2017
Конфигурация сохраняется в личном реестре, см. Этот ответ: /questions/2054772/gde-visual-studio-2017-hranit-svoi-nastrojki/2054776#2054776
Для VS 2017 сохраните эту суть как файл *.ps1 и запустите его с правами администратора или скопируйте и вставьте следующий код в файл ps1:
#IMPORTANT: Must be run as admin
dir $env:LOCALAPPDATA\Microsoft\VisualStudio\15.* | % {
#https://stackru.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\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, имейте в виду, что вам нужно это сделать.
Я смог заставить его работать на Windows 7. Сначала я изменил значение реестра с VS2008 все еще открытым. Затем я закрыл его, обновил редактор реестра и заметил, что значение было сброшено до 0. Затем я изменил его обратно на 1 и запустил VS2008. Теперь работает нормально. Я попытался закрыть VS2008 и открыть его обратно, а значение реестра остается 1. Спасибо за вашу помощь
Другие ответы в этом посте содержат правильную информацию, но у меня были проблемы с тем, чтобы заставить ее работать, поэтому это попытка сделать ответ очень явным. Эти инструкции работали для Visual Studio 2010, работающей в 64-разрядной версии Windows 7 Ultimate.
- Убедитесь, что экземпляры 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
Вы можете изменить удостоверение iis AppPool на своего фактического пользователя Windows, если это локальный компьютер.
Ваш ответ доступен по http://msdn.microsoft.com/en-us/library/ms241736.aspx
Если вы отлаживаете законный сценарий, который вызывает это предупреждение, и хотите подавить его, есть параметр реестра, который позволяет вам сделать это. Не забудьте повторно включить предупреждение после завершения сценария.
Это не прямой ответ на вопрос, но он обходит защитное сообщение, а также обеспечивает более быстрый способ присоединения к ранее присоединенному процессу:
- установить расширение Reattach
- прикрепить с помощью Reattach и сообщение обойдено
- повторное присоединение (Ctrl-R + Ctrl-[1-5]) к предыдущему процессу имеет то же преимущество
Вариант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
Для VS2015 и VS2017 доступно расширение Visual Studio: "Присоединяйся ко всем":
Вы можете привязать "Attach To IIS" к любому аккорду клавиш, используя обычный процесс.
Поэтому единственное, что мне подходит для 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
Вариант PowerShell, основанный на существующих ответах от SliverNinja и Martin Hollingsworth. Это было протестировано в Visual Studio 2015 в среде win7/x64. Скрипт попросит вас закрыть 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!"
}