152

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

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

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

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

+0

Это работало до недавнего времени в VS2015 - я определенно закрыл все экземпляры VS, и ключ установлен, но предупреждение снова появилось. – fastmultiplication

ответ

215

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

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

Изменить (или создать) следующий ключ реестра :

Visual Studio 2008HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\9.0\Debugger\DisableAttachSecurityWarning

Visual Studio 2010HKEY_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.

Update: Если вы не хотите, чтобы открыть редактор реестра, сохранить этот 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 
} 
+4

, похоже, это тоже работает в visual studio 2010. – Chris

+10

Для VS2012 ключ HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ 11.0 \ Debugger \ DisableAttachSecurityWarning – maddoxej

+0

Не работал для меня. Они уже были установлены. Все еще это делает. – Justin

4

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

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

+0

должен был сказать, что я пробовал это, но не работает – roundcrisis

8

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

13

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

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

6

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

  • Убедитесь, что никакие экземпляры Visual Studio не работает (Используйте диспетчер задач для проверки devenv.exe)
  • Добавить в DisableAttachSecurityWarning значение реестра DWORD в HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ XX \ Debugger и установите значение . Для 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 
2

так, единственное, что будет работать для меня с 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 
+3

Голосов с нулевым комментарием. Должно быть ограничено. –

5

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

+0

Я был недавно укушен этой «особенностью», которую я раньше не видел, когда ваш ответ заставил меня понять, что это потому, что я просто переключил _from_ фактическую учетную запись пользователя на apppoolidentity. – drzaus

3

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 
0

изменения PowerShell на основе существующих ответов от SliverNinja и Мартин Холлингсуорта. Это было протестировано с 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!" 
} 
4

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

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

Расширения Visual Studio доступно для VS2015 и VS2017: "Attach To All The Things":

enter image description here

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

Смежные вопросы