Отключите предупреждение безопасности Visual Studio Attach при отладке IIS - PullRequest
157 голосов
/ 12 сентября 2009

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

Как вы это превратите?

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

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

Ответы [ 11 ]

228 голосов
/ 08 января 2010

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

убедитесь, что 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, сохраните этот gist как файл * .reg и запустите его (импортирует ключи для всех версий VS ниже VS2017).

Visual Studio 2017

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

Для VS 2017 , сохраните этот gist как файл * .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
}
13 голосов
/ 03 сентября 2010

Настройка реестра работает; однако вы должны убедиться, что вы установили его в 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, имейте в виду, что вам нужно это сделать.

8 голосов
/ 25 марта 2010

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

7 голосов
/ 20 мая 2011

Другие ответы в этом посте содержат правильную информацию, но у меня были проблемы с тем, чтобы заставить ее работать, поэтому это попытка сделать ответ очень четким. Эти инструкции работали для 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
6 голосов
/ 04 декабря 2013

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

4 голосов
/ 19 марта 2017

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

  • установить Присоединить расширение
  • прикрепить с помощью Reattach и сообщение обойдено
  • повторное присоединение (Ctrl-R + Ctrl- [1-5]) к предыдущему процессу имеет то же преимущество
4 голосов
/ 12 сентября 2009

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

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

3 голосов
/ 01 июля 2014

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
2 голосов
/ 11 апреля 2012

Итак, единственное, что могло бы работать для меня с 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
1 голос
/ 01 февраля 2018

Доступно расширение Visual Studio для VS2015 и VS2017: «Прикрепить ко всем» :

enter image description here

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...