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.
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.
HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0\Debugger
, faites un clic droit et créez un nouveau DWORD
: DisableAttachSecurityWarning
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
}
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.
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
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.
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
Vous pouvez changer l'identité iis AppPool en votre utilisateur Windows réel, s'il s'agit d'une machine locale.
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é.
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é:
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
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
Une extension Visual Studio est disponible pour VS2015 et VS2017: "" Attach To All The Things " :
Vous pouvez lier "Attach To IIS" à l’accord de touches que vous souhaitez en utilisant le processus habituel.
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!"
}