Disattiva gli avvisi di sicurezza di Visual Studio Attach durante il debug di IIS
-
06-07-2019 - |
Domanda
Quando si utilizza Visual Studio 2008 o 2010, ogni volta che ci si collega a IIS w3wp.exe viene visualizzato un avviso di sicurezza relativo,
Come si trasforma questo?
Sarebbe bello sapere anche come tenerlo attaccato per indugiare, poiché questo sembra scadere dopo un po '.
A proposito: ho aggiunto questo come commento alla risposta di seguito, la prima cosa che ho fatto è stato provare l'articolo msdn http://msdn.microsoft.com/en-us/library/ms241736.aspx ma non funziona.
Soluzione
Anche trovato nell'articolo citato da Tzury, ma per riassumere le risposte in questo thread:
assicurarsi che Visual Studio non sia in esecuzione quando si cambia la chiave di registro o verrà sovrascritto all'uscita con il vecchio valore
Cambia (o crea) la seguente chiave di registro in 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
Per VS2015, potrebbe essere necessario creare la chiave di registro di cui sopra.
- Assicurati che Visual Studio non sia in esecuzione e apri l'Editor del Registro di sistema.
- Vai a
HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ 14.0 \ Debugger
, fai clic con il pulsante destro del mouse e crea un nuovoDWORD
:- Nome:
DisableAttachSecurityWarning
- Valore:
1
.
- Nome:
Aggiornamento: se non si desidera aprire regedit, salvare questo gist come file * .reg ed eseguilo (importa le chiavi per tutte le versioni VS inferiori di VS2017).
Visual Studio 2017
La configurazione viene salvata in una posizione del registro privato, vedere questa risposta: https://stackoverflow.com/a/41122603/67910
Per VS 2017 , salva questo gist come file * .ps1 ed eseguilo come amministratore oppure copia e incolla il seguente codice in un file 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\' Anche trovato nell'articolo citato da Tzury, ma per riassumere le risposte in questo thread:
assicurarsi che Visual Studio non sia in esecuzione quando si cambia la chiave di registro o verrà sovrascritto all'uscita con il vecchio valore
Cambia (o crea) la seguente chiave di registro in 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
Per VS2015, potrebbe essere necessario creare la chiave di registro di cui sopra.
- Assicurati che Visual Studio non sia in esecuzione e apri l'Editor del Registro di sistema.
- Vai a
HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ 14.0 \ Debugger
, fai clic con il pulsante destro del mouse e crea un nuovo DWORD
:
- Nome:
DisableAttachSecurityWarning
- Valore:
1
.
Aggiornamento: se non si desidera aprire regedit, salvare questo gist come file * .reg ed eseguilo (importa le chiavi per tutte le versioni VS inferiori di VS2017).
Visual Studio 2017
La configurazione viene salvata in una posizione del registro privato, vedere questa risposta: https://stackoverflow.com/a/41122603/67910
Per VS 2017 , salva questo gist come file * .ps1 ed eseguilo come amministratore oppure copia e incolla il seguente codice in un file ps1:
<*>\privateregistry.bin
$BasePath='HKU:\VS2017PrivateRegistry\Software\Microsoft\VisualStudio'
$keysResult=dir $BasePath
$keysResult | ? { Anche trovato nell'articolo citato da Tzury, ma per riassumere le risposte in questo thread:
assicurarsi che Visual Studio non sia in esecuzione quando si cambia la chiave di registro o verrà sovrascritto all'uscita con il vecchio valore
Cambia (o crea) la seguente chiave di registro in 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
Per VS2015, potrebbe essere necessario creare la chiave di registro di cui sopra.
- Assicurati che Visual Studio non sia in esecuzione e apri l'Editor del Registro di sistema.
- Vai a
HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ 14.0 \ Debugger
, fai clic con il pulsante destro del mouse e crea un nuovo DWORD
:
- Nome:
DisableAttachSecurityWarning
- Valore:
1
.
Aggiornamento: se non si desidera aprire regedit, salvare questo gist come file * .reg ed eseguilo (importa le chiavi per tutte le versioni VS inferiori di VS2017).
Visual Studio 2017
La configurazione viene salvata in una posizione del registro privato, vedere questa risposta: https://stackoverflow.com/a/41122603/67910
Per VS 2017 , salva questo gist come file * .ps1 ed eseguilo come amministratore oppure copia e incolla il seguente codice in un file ps1:
<*>.Name -match '\\\d+\.\d+_[^_]+} | % {
$keyName = Anche trovato nell'articolo citato da Tzury, ma per riassumere le risposte in questo thread:
assicurarsi che Visual Studio non sia in esecuzione quando si cambia la chiave di registro o verrà sovrascritto all'uscita con il vecchio valore
Cambia (o crea) la seguente chiave di registro in 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
Per VS2015, potrebbe essere necessario creare la chiave di registro di cui sopra.
- Assicurati che Visual Studio non sia in esecuzione e apri l'Editor del Registro di sistema.
- Vai a
HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ 14.0 \ Debugger
, fai clic con il pulsante destro del mouse e crea un nuovo DWORD
:
- Nome:
DisableAttachSecurityWarning
- Valore:
1
.
Aggiornamento: se non si desidera aprire regedit, salvare questo gist come file * .reg ed eseguilo (importa le chiavi per tutte le versioni VS inferiori di VS2017).
Visual Studio 2017
La configurazione viene salvata in una posizione del registro privato, vedere questa risposta: https://stackoverflow.com/a/41122603/67910
Per VS 2017 , salva questo gist come file * .ps1 ed eseguilo come amministratore oppure copia e incolla il seguente codice in un file ps1:
<*>.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
}
Altri suggerimenti
L'impostazione del registro funziona; tuttavia, è necessario assicurarsi di impostarlo nella sandbox del registro a 32 bit per VS2005 / 2008 utilizzando regedit.exe a 32 bit in % windir% \ SysWOW64 \
o aggiungendolo in < code> HKLM \ Software \ Wow6432Node \ ... . Ho creato uno script .reg che lo aggiunge semplicemente a entrambi:
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
Cambia la versione in 8.0 per il 2005, 10.0 per il 2010, ecc.
NOTA: regedit su Windows 7 sembra voler salvare i file .reg come UTF16-LE, quindi se lo si salva in un file .reg, tenere presente che è necessario farlo.
Sono stato in grado di farlo funzionare su Windows 7. Ho prima cambiato il valore del registro con VS2008 ancora aperto. L'ho chiuso, ho aggiornato l'editor del registro e ho notato che il valore è stato reimpostato su 0. L'ho modificato di nuovo su 1 e ho avviato VS2008. Ora funziona bene. Ho provato a chiudere VS2008 e riaprirlo e il valore del registro rimane 1. Grazie per l'aiuto
Le altre risposte in questo post contengono le informazioni giuste ma ho avuto problemi a farlo funzionare, quindi questo è un tentativo di rendere la risposta molto esplicita. Queste istruzioni hanno funzionato per Visual Studio 2010 in esecuzione su Windows 7 Ultimate a 64 bit.
- Assicurati che nessuna istanza di Visual Studio sia in esecuzione (usa il task manager per controllare devenv.exe )
- Aggiungi il valore di registro DWORD DisableAttachSecurityWarning su HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ X.X \ Debugger e imposta il valore su 1 . Per Visual Studio 2008 sostituire X.X con 9.0 , per il 2010 utilizzare 10.0
Il motivo per cui ho faticato a farlo funzionare è che stavo provando questo usando HKEY_LOCAL_MACHINE invece di HKEY_CURRENT_USER. Ho dovuto ricorrere all'uso di Process Monitor e un po 'di filtro su devenv per identificare errore mio. Ho il sospetto che il valore HKLM abbia alcun effetto se viene impostato prima di aprire Visual Studio per la prima volta.
Qualsiasi istanza aperta di Visual Studio sovrascriverà le modifiche quando saranno chiuse e solo le nuove istanze rileveranno l'impostazione in ogni caso.
L'uso del Wow6432Node il registro sembra non essere necessario per quanto ne so. I seguenti comandi Powershell applicheranno i passaggi per Visual Studio 2010.
Get-Process -Name devenv* | ForEach-Object { Stop-Process Le altre risposte in questo post contengono le informazioni giuste ma ho avuto problemi a farlo funzionare, quindi questo è un tentativo di rendere la risposta molto esplicita. Queste istruzioni hanno funzionato per Visual Studio 2010 in esecuzione su Windows 7 Ultimate a 64 bit.
- Assicurati che nessuna istanza di Visual Studio sia in esecuzione (usa il task manager per controllare devenv.exe )
- Aggiungi il valore di registro DWORD DisableAttachSecurityWarning su HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ X.X \ Debugger e imposta il valore su 1 . Per Visual Studio 2008 sostituire X.X con 9.0 , per il 2010 utilizzare 10.0
Il motivo per cui ho faticato a farlo funzionare è che stavo provando questo usando HKEY_LOCAL_MACHINE invece di HKEY_CURRENT_USER. Ho dovuto ricorrere all'uso di Process Monitor e un po 'di filtro su devenv per identificare errore mio. Ho il sospetto che il valore HKLM abbia alcun effetto se viene impostato prima di aprire Visual Studio per la prima volta.
Qualsiasi istanza aperta di Visual Studio sovrascriverà le modifiche quando saranno chiuse e solo le nuove istanze rileveranno l'impostazione in ogni caso.
L'uso del Wow6432Node il registro sembra non essere necessario per quanto ne so. I seguenti comandi Powershell applicheranno i passaggi per Visual Studio 2010.
<*>.Id }
New-ItemProperty -Path 'HKCU:\Software\Microsoft\VisualStudio\10.0\Debugger' -Name 'DisableAttachSecurityWarning' -Value 1 -PropertyType 'DWORD' -Force
Puoi modificare l'identità di iis AppPool sul tuo attuale utente di Windows, se si tratta di un computer locale.
la tua risposta è disponibile all'indirizzo http://msdn.microsoft.com/ it-it / library / ms241736.aspx
Se stai eseguendo il debug di un legittimo scenario che causa questo avviso appaiono e vogliono sopprimerli lì è un'impostazione del registro che ti consente per fare questo. Ricorda di riattivare il avviso dopo aver finito con il scenario.
Questa non è una risposta diretta alla domanda, ma elude il messaggio di sicurezza e fornisce anche un modo più veloce per collegarsi a un processo precedentemente collegato:
- installa Riattiva estensione
- allega usando Reattach e il messaggio è bypassato
- ricollegare (Ctrl-R + Ctrl- [1-5]) a un processo precedente ha lo stesso vantaggio
Powershell ... sostituisci $ vsversion
con la versione a cui vuoi applicarla.
Nota : salva il tuo lavoro prima di eseguirlo. Tutte le istanze VS in esecuzione verranno arrestate. Se non si terminano le istanze VS aperte, il valore non verrà mantenuto.
$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
quindi, l'unica cosa che funzionerebbe con Visual Studio 2010 su x64 / Win7 è aggiornare entrambi i nodi, incluso il 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
Un'estensione di Visual Studio è disponibile per VS2015 e VS2017: " Allega a tutti Cose " :
Puoi associare " Allega a IIS " a qualsiasi accordo chiave che ti piace usando il solito processo.
Una powershell basata sulle risposte esistenti di SliverNinja e Martin Hollingsworth. Questo è stato testato con Visual Studio 2015 su un ambiente win7 / x64 . Lo script ti chiederà di chiudere Visual Studio se è in esecuzione (non tenterà di ucciderlo).
$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!"
}