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

StackOverflow https://stackoverflow.com/questions/1414769

Вопрос

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

Как это отключить?

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

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

Это было полезно?

Решение

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

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

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

Визуальная Студия 2008 HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\9.0\Debugger\DisableAttachSecurityWarning

Визуальная Студия 2010 HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\10.0\Debugger\DisableAttachSecurityWarning

Визуальная Студия 2012 HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\Debugger\DisableAttachSecurityWarning

Визуальная Студия 2013 HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\12.0\Debugger\DisableAttachSecurityWarning

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

Визуальная Студия 2017

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

Для ВС 2017, сохранить это суть как файл *.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
}

Другие советы

Настройка реестра работает; однако вы должны убедиться, что вы установили его в 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\X.X\Debugger и установите значение 1.Для Visual Studio 2008 замените XX на 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\10.0\Debugger' -Name 'DisableAttachSecurityWarning' -Value 1 -PropertyType 'DWORD' -Force

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

ваш ответ доступен по адресу http://msdn.microsoft.com/ ан-нас / библиотека / ms241736.aspx

  

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

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

  • установить Повторно подключить расширение
  • прикрепите с помощью 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

Итак, единственное, что мне подходит для 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

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

 введите описание изображения здесь

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

Вариант 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!"
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top