web-dev-qa-db-fra.com

Désactiver l'avertissement de sécurité Visual Studio Attach lors du débogage IIS

Lorsque vous utilisez Visual Studio 2008 ou 2010, chaque fois que vous vous connectez à IIS w3wp.exe, vous obtenez un avertissement de sécurité attaché,

Comment désactivez-vous cela?

Ce serait cool de savoir aussi comment le garder attaché pendant longtemps, car cela semble expirer après un certain temps.

Btw: J'ai ajouté cela en tant que commentaire à la réponse ci-dessous, la première chose que j'ai faite a été d'essayer l'article msdn http://msdn.Microsoft.com/en-us/library/ms241736.aspx mais ça ne marche pas.

157
roundcrisis

On trouve également dans l'article mentionné par Tzury, mais pour résumer les réponses dans ce fil:

assurez-vous que Visual Studio n'est pas en cours d'exécution lorsque vous modifiez la clé de registre ou il sera écrasé à la sortie avec l'ancienne valeur

Modifiez (ou créez) la clé de registre suivante en 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

Pour VS2015, vous devrez peut-être créer la clé de registre référencée ci-dessus.

  1. Assurez-vous que Visual Studio n'est pas en cours d'exécution et ouvrez l'Éditeur du Registre.
  2. Aller vers HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0\Debugger, faites un clic droit et créez un nouveau DWORD:
    • Nom: DisableAttachSecurityWarning
    • Valeur: 1.

Mise à jour: Si vous ne voulez pas ouvrir regedit, enregistrez ce Gist en tant que fichier * .reg et exécutez-le (importe les clés pour toutes les versions VS inférieures à VS2017).

Visual Studio 2017

La configuration est enregistrée dans un emplacement de registre privé, voir cette réponse: https://stackoverflow.com/a/41122603/6791

Pour VS 2017 , enregistrez ce Gist en tant que fichier * .ps1 et exécutez-le en tant qu'administrateur, ou copiez et collez ce qui suit code dans un fichier 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
}
228
Wiebe Tijsma

Le paramètre de registre fonctionne; cependant, vous devez vous assurer de le définir dans le sandbox de registre 32 bits pour VS2005/2008 en utilisant regedit.exe 32 bits dans %windir%\SysWOW64\ ou en l'ajoutant sous HKLM\Software\Wow6432Node\.... J'ai créé un script .reg qui l'ajoute simplement aux deux:

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

Changez simplement la version en 8.0 pour 2005, 10.0 pour 2010, etc.

REMARQUE: regedit sur Windows 7 semble vouloir enregistrer les fichiers .reg au format UTF16-LE, donc si vous l'enregistrez dans un fichier .reg, sachez que vous devez le faire.

13
Chris R. Donnelly

J'ai pu le faire fonctionner sur Windows 7. J'ai d'abord changé la valeur de registre avec VS2008 toujours ouvert. Je l'ai ensuite fermé et actualisé l'éditeur de registre et j'ai remarqué que la valeur était réinitialisée à 0. Je l'ai ensuite remise à 1 et j'ai démarré VS2008. Cela fonctionne maintenant très bien. J'ai essayé de fermer VS2008 et de l'ouvrir en arrière et la valeur de registre reste 1. Merci pour votre aide

8
Eric Villemure

Les autres réponses dans ce post contiennent les bonnes informations mais j'ai eu des problèmes pour les faire fonctionner, c'est donc une tentative de rendre la réponse très explicite. Ces instructions ont fonctionné pour Visual Studio 2010 exécuté sur Windows 7 Ultimate 64 bits.

  • Assurez-vous qu'aucune instance de Visual Studio n'est en cours d'exécution (utilisez le gestionnaire de tâches pour vérifier devenv.exe )
  • Ajoutez la valeur de Registre DWORD DisableAttachSecurityWarning à HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\XX\Debugger et définissez la valeur sur 1 . Pour Visual Studio 2008, remplacez X.X par 9.0 , pour 2010 utilisez 10.0

La raison pour laquelle j'ai eu du mal à faire fonctionner cela était que j'essayais cela en utilisant HKEY_LOCAL_MACHINE au lieu de HKEY_CURRENT_USER. J'ai dû recourir à Process Monitor et un peu de filtrage sur devenv pour identifier mon erreur. Je soupçonne que la valeur HKLM n'a d'effet que si elle est définie avant d'ouvrir Visual Studio pour la première fois.

Toutes les instances ouvertes de Visual Studio écraseront vos modifications lorsqu'elles seront fermées et seules les nouvelles instances reprendront le paramètre dans tous les cas.

L'utilisation du registre Wow6432Node semble inutile pour autant que je sache. Les commandes Powershell suivantes appliqueront les étapes de 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
7

Vous pouvez changer l'identité iis AppPool en votre utilisateur Windows réel, s'il s'agit d'une machine locale.

6
Tóth Zoltán

votre réponse est disponible sur http://msdn.Microsoft.com/en-us/library/ms241736.aspx

Si vous déboguez un scénario légitime qui fait apparaître cet avertissement et que vous souhaitez le supprimer, il existe un paramètre de registre qui vous permet de le faire. N'oubliez pas de réactiver l'avertissement une fois le scénario terminé.

4
Tzury Bar Yochay

Ce n'est pas une réponse directe à la question, mais cela contourne le message de sécurité et fournit également un moyen plus rapide de se connecter à un processus précédemment attaché:

  • installer Rattacher l'extension
  • attacher en utilisant Reattach et le message est contourné
  • réattacher (Ctrl-R + Ctrl- [1-5]) à un processus précédent a le même avantage
4
Alexei

Powershell variante ... remplacer $vsversion avec la version à laquelle vous souhaitez l'appliquer.

Remarque : Enregistrez votre travail avant d'exécuter cela. Toutes les instances VS en cours d'exécution seront arrêtées. Si vous ne fermez pas les instances VS ouvertes, la valeur ne sera pas conservée.

$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
3
SliverNinja - MSFT

ainsi, la seule chose qui fonctionnerait pour moi avec Visual Studio 2010 sur x64/Win7 est de mettre à jour les deux nœuds, y compris le 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
2
Shawn Cicoria

Une extension Visual Studio est disponible pour VS2015 et VS2017: "" Attach To All The Things " :

enter image description here

Vous pouvez lier "Attach To IIS" à l’accord de touches que vous souhaitez en utilisant le processus habituel.

1
Marc Gravell

A PowerShell variation basée sur les réponses existantes de SliverNinja et Martin Hollingsworth. Cela a été testé avec Visual Studio 2015 sur un environnement win7/x64. Le script vous demandera de fermer Visual Studio s'il est en cours d'exécution (n'essayera pas de le tuer).

$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!"
}
0
Cebe